我有一个逻辑如下所示的函数:
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()
如您所见,endstuff()
在每次可能的函数退出时完成。现在,endstuff()
实际上是两行代码,我最近不得不为所有可能的导出添加第三行。有没有更优雅的方式来组织这段代码?我不能只使用 finally
,因为抛出异常并不总是这样。
最佳答案
即使没有抛出异常,您也可以使用 finally,据我所知,这是执行您想要的操作的最优雅的方式。
关于design-patterns - 模式 : Elegant way to do something upon function exit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074187/