阅读有关异常处理的文档往往侧重于使用特定的异常类型 - 一般来说,这是一个很好的建议。
但是有时我想运行一些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
不会?