Python 中的裸异常的替代方案?

问题描述 投票:0回答:1

阅读有关异常处理的文档往往侧重于使用特定的异常类型 - 一般来说,这是一个很好的建议。

但是有时我想运行一些Python代码,这些代码在任何情况下都会抛出未处理的异常并停止程序运行:

例如,图形应用程序可能会运行用户定义的脚本,我不知道该脚本可能会触发什么错误,因此检查特定错误是没有用的:

try:
    run_script_file(filepath)
except:
    import traceback
    print("Script:", filepath, "failed with error!")
    traceback.print_exc()

这可行,但代码检查工具警告不应使用 bare- except,虽然我可以在每种情况下抑制警告,但我正在考虑使用

except BaseException:
来消除警告。


裸露的

except:
是否保证
except BaseException:
等效,或者是否存在细微的差异,裸露的 except 可能会捕获异常,而
BaseException
不会?

python exception
1个回答
0
投票

来自文档

在 Python 中,所有异常都必须是派生自 BaseException 的类的实例。

所以,是的,它们是等价的。

© www.soinside.com 2019 - 2024. All rights reserved.