coding style - try, except
Peter Otten
__peter__ at web.de
Wed Feb 25 13:07:11 EST 2009
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
More information about the Python-list
mailing list