design-patterns - 模式 : Elegant way to do something upon function exit?

标签 design-patterns language-agnostic coding-style

我有一个逻辑如下所示的函数:

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/

相关文章:

delphi - 我可以通过复制内存来克隆对象吗?

math - float 学坏了吗?

math - 在 Python 中编写简单数学计算的最佳实践

java - 通过不同类传递值的最佳设计模式

java - MVC 多 View 和一个 Controller

c++ - "The input/output library <stdio.h> shall not be used."

c++ - 为什么在 C++ 中使用 = 来初始化原始类型?

math - float 学坏了吗?

algorithm - BST 输入的可能排列