2024-03-29 06:12:38 发布
网友
我正在用Python编写一个大型批处理类型的脚本,不管是否发生异常,最后都需要进行一些清理。为此,我只需将主程序放在try块中,将cleanup放在finally块中。在
这似乎很有效,但我的问题是如何打印可能发生的任何异常。目前它只是忽略它们,跳到最后一个块。在
你可以使用回溯。在
比如:
import traceback try: foo except: print(traceback.format_exc()) finally: cleanup
您应该能够使用try/finally块,而不使用异常处理程序。它不会捕获异常或禁止回溯,只需确保无论是否存在异常,清理代码都是运行的。这就是finally的全部要点。在
try
finally
下面是一个例子:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> try: ... print 'begin try' ... assert False ... print 'end try' ... finally: ... print 'finally' ... begin try finally Traceback (most recent call last): File "<stdin>", line 3, in <module> AssertionError
你可以使用回溯。在
比如:
您应该能够使用
try
/finally
块,而不使用异常处理程序。它不会捕获异常或禁止回溯,只需确保无论是否存在异常,清理代码都是运行的。这就是finally
的全部要点。在下面是一个例子:
相关问题 更多 >
编程相关推荐