有关异常处理的文档往往侧重于使用特定的异常类型 - 一般来说,这是一个很好的建议。
但是有时我想运行一些Python代码,这些代码在任何情况下都会抛出未处理的异常并停止程序运行:
例如,图形应用程序可能运行用户定义的脚本。我不知道该脚本可能会触发哪些错误,因此检查特定错误没有用:
try:
run_script_file(filepath)
except:
import traceback
print("Script:", filepath, "failed with error!")
traceback.print_exc()
这可行,但代码检查工具警告不应使用裸露的
except
。虽然我可以在每种情况下抑制警告,但我正在考虑使用 except BaseException:
来消除警告。
裸露的
except:
保证 与 except BaseException:
等效吗?或者是否存在细微的差异,裸露的 except 可能会捕获异常,而 BaseException
不会?