有问题的代码:
import sys
def handler(exception_type, exception_value, traceback_object):
print(exception_type, exception_value)
sys.excepthook = handler
defined_thing = "Redacted faster than dissenting tweets"
print(defined_thing)
print(undefined_thing)
print("I wish I got here...")
结果:
Redacted faster than dissenting tweets
<class 'NameError'> name 'undefined_thing' is not defined
Process finished with exit code 1
问题:我可以阻止退出并继续打印错误吗?
答案 0 :(得分:1)
来自the docs(强调我的):
当引发异常且未被捕获时,解释器会调用
getOwnPropertyNames
有三个参数,异常类,异常 实例和回溯对象。在这个交互式会话中 在控制返回到提示之前发生; Python中的 程序会在程序退出之前发生。
您的except挂钩将运行,然后程序将退出。如果要捕获异常,则需要使用通常的try-except
公式。
答案 1 :(得分:0)