配置Python的默认异常处理

时间:2009-10-21 10:29:56

标签: python

对于未捕获的异常,Python默认打印堆栈跟踪,异常本身并终止。是否有人知道在程序级别定制此行为的方法(除了建立我自己的全局,catch-all异常处理程序),以便省略堆栈跟踪?我想在我的应用程序中切换是否打印堆栈跟踪。

1 个答案:

答案 0 :(得分:24)

您正在寻找sys.excepthook:

sys.excepthook(类型,值,追溯)

此函数打印出sys.stderr的给定回溯和异常。

当引发异常并且未被捕获时,解释器使用三个参数调用sys.excepthook,异常类,异常实例和回溯对象。在交互式会话中,这发生在控制返回到提示之前;在Python程序中,这发生在程序退出之前。可以通过为sys.excepthook指定另一个三参数函数来自定义这种顶级异常的处理。