Python:捕获未捕获的异常但不立即退出

时间:2015-08-05 20:16:38

标签: python exception sys

来自sys模块的标准库

  

sys.excepthook(type,value,traceback)

     

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

     

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

有没有办法捕捉未被捕获的异常没有之后必然立即退出(取决于决策过程)?


我想答案是否定的。我认为BDFL以他的智慧提供这个作为最后一次机会,从崩溃的,不好的计划中挽救一些面包屑,然后崩溃成为遗忘,只留下几根原木。

1 个答案:

答案 0 :(得分:0)

以下情况除外:对任何未捕获的异常都起作用,但这会产生意想不到的后果。更好的方法是编写单元测试并主动准备可能的异常,比如孩子在表单中抛出unicode。

try:
  # do something

except Exception_Type:
  # do something else

except:
  # woops didn't count on that