I have a function with logic that looks like this:
doStuff1()
try:
doStuff2()
except type1:
error1()
return endstuff()
except type2:
error2()
return endstuff()
except:
error3()
return endstuff()
if doStuff3():
error4()
return endstuff()
doStuff4()
return endstuff()
As you can see, endstuff()
is done on every possible exit to the function. As it is now, endstuff()
is actually 2 lines of code, and I recently had to add a third one to all possible exits. Is there any more elegant way to organize this code? I can't just use a finally
, as it's not always the case that an exception is thrown.