Steve Holden wrote: > RGK wrote: >> >> I'm still learning, so eager to see if there is some community wisdom >> about use of the try/except structures in this situation. >> >> I find myself with some potentially risky stuff and wrap it in a >> try/except structure with good functional results, though my code leaves >> me a bit uneasy. Maybe it's just esoteric, but your input is appreciated. >> >> Consider >> >> try: >> do something 1 >> do something 2 >> do something 3 >> do something 4 >> ... >> do something 25 >> >> except: >> print "Oops something didn't work"
If you don't want a specific treatment for errors anticipated in 1 and 2 there's no need for try...except at this level at all. Just pass control up the stack. >> The risky things are just 1 & 2, and the others are not of concern, but >> are dependent on 1 & 2. The alternative is to do: >> >> wentOkay = True >> try: >> do something 1 >> do something 2 >> >> except: >> print "Oops something didn't work" >> wentOkay = False >> >> if wentOkay: >> do something 3 >> do something 4 >> ... >> do something 25 >> >> >> Which seems a bit verbose, but likely the better approach. Is there >> some other option I should be considering? >> >> Any input appreciated :) >> > The first form is far preferable: it expresses the logic directly and > clearly, and is much easier to read than the second, which I personally > find somewhat contorted. How about try: # do something that may fail in a way you anticipate do something 1 do something 2 except SpecificError: deal with the problem or reraise else: # no errors above do something 3...25 Peter -- http://mail.python.org/mailman/listinfo/python-list