如何阻止python脚本终止?

How to stop a python script from terminating?

本问题已经有最佳答案,请猛点这里访问。

一般情况下,try/except条款用于处理错误和异常,捕捉错误和异常并采取相应的行动。但是假设有一个脚本,用户不确定在哪里可以引发异常。现在,除了到处应用try/except之外,还有什么模块或装饰器可以捕捉到任何异常的发生,并简单地让程序不中断吗?

编辑:这不能是try/except问题的副本。当然,我知道这一点,并且可以将其应用到我知道可能发生异常的所有可能的地方。我专门寻找一些处理异常处理的模块或装饰器。在引发错误之前调用的内置函数也可以解决问题。


处理异常的正确方法是在可以引发异常的代码块周围使用try/except块。有时这意味着将您的main()函数(或运行整个程序的任何函数)包装在try/except块中。那很好。如果您想完全忽略这个异常,可以使用contextlib.suppress,这也很好,并且可以为您节省几行代码。

现在,如果出于某种原因,您需要对未捕获的异常作出反应,并且您不能用try/except包围相关的代码段,那么您可以将sys.excepthook设置为一个函数,该函数接受异常信息作为参数,并实现您想要的任何处理,例如记录异常。这是一个相当粗糙的机制,但我不建议在正常情况下使用它。(据我所知,它无法阻止引发异常,如果这是您所要求的,它只能给您一个机会,在堆栈释放和程序结束之前运行一些您自己的代码。)