您可以像@Kanwar Saad 提议的那样添加一般的 except 块。问题是,在引发异常后,您能否继续使程序处于有效状态?
来自 Python 之禅:
Errors should never pass silently.
Unless explicitly silenced.
在我看来,尝试捕获所有你知道的异常是最好的方法。如果您不能显式捕获异常,则不应尝试解决它。您(和您的用户)应该知道到底出了什么问题,否则您的代码可能会成为调试的噩梦。
如果您担心丢失备份数据,也许您可以执行以下操作:
def save_unfinished_backup():
# try to find a graceful exit without losing any data
try:
# some code
except OSError:
# handle oS Errors
except Exception:
save_unfinished_backup()
raise
这样您就可以同时获得:避免数据丢失的机会和调试它的确切错误。
我希望这有帮助!
有趣的是:您也可以使用fuckit模块。这会消除所有错误,包括语法错误。但是,永远不要在生产代码中使用它。
这应该可以完美地工作。它不会打印“foo”,但你会在print("bar")
没有崩溃的情况下到达。
import fuckit
with fuckit:
prnt("foo")
print("bar")