1 回答

TA贡献1848条经验 获得超2个赞
这取决于。
如果可行的是,应该将should_continue检查为false退出即可。另一种方法是在呼叫链上一直传递“停止”返回,并需要在每个级别进行检查;这很容易出错,而且很难阅读。
如果仅退出不是非常理想,并且通常不是万一需要清理或需要“嘿,我退出是因为...”,那么您就不应该仅仅退出。由于您以Python为例,因此它具有异常清晰的异常处理方法:
class TimeToSayGoodbye(Exception):
def __init__(self, reason):
self.reason = reason
具有深层嵌套的功能:
def way_down_the_stack():
if not should_continue:
raise TimeToSayGoodbye('drive safely')
然后如果您什么也不做,Python会生成一个有用的(但不是很漂亮)回溯。如果你的主看起来像
def main():
try:
my_application()
except TimeToSayGoodbye as e:
print (e.reason)
这样,您的高层就可以控制发生在任何地方的“再见”,而且my_application和way_down_the_stack之间的15个方法都不需要知道程序可能自发结束。
添加回答
举报