对于未捕获的异常,Python默认打印堆栈跟踪,异常本身并终止。是否有人知道在程序级别定制此行为的方法(除了建立我自己的全局,catch-all异常处理程序),以便省略堆栈跟踪?我想在我的应用程序中切换是否打印堆栈跟踪。
答案 0 :(得分:24)
您正在寻找sys.excepthook:
sys.excepthook(类型,值,追溯)
此函数打印出sys.stderr的给定回溯和异常。
当引发异常并且未被捕获时,解释器使用三个参数调用sys.excepthook,异常类,异常实例和回溯对象。在交互式会话中,这发生在控制返回到提示之前;在Python程序中,这发生在程序退出之前。可以通过为sys.excepthook指定另一个三参数函数来自定义这种顶级异常的处理。