On Friday 26 October 2007 03:17:47 pm Alan Gauld wrote: > "Allen Fowler" <[EMAIL PROTECTED]> wrote > > > I have a block of code buried deep in a module > > that I expect to fail periodically. > > (Calls to other machines over slow network, and such.) > > > > Generally, though, trying it a second / third will work. > > > > Is there clean way to write this on Python? > > There was a thread on this a few days ago but I can't find it now... > > In general if you only have a few (eg hundreds) things to > check you can run a loop inside a loop and exit it with break > if it works. Pdeudo code: > > for item in list: > for attempt in range(3): > result = accessItem(item) > if result == OK: break > else: sleep(T) # optional pause to regroup if needed... > else: logError(item) > > But I'm not sure if that's what you count as clean! > > If the volumes being processed it is usually better to > gather the failures up for seondary processing after > getting through the successful ones. This is a much > more efficient way of handling high data volumes. > > HTH
What about placing the "try" in a function and call the function from a loop passing the variable to check (computer name). Then each failure will not cause the app to stop processing. Use a counter in the calling procedure to the number of attempts. -- John Fabiani _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor