gpt4 book ai didi

python - 决定在 Python 中捕获哪些异常

转载 作者:太空狗 更新时间:2023-10-29 21:23:01 28 4
gpt4 key购买 nike

假设我正在使用一个库 X,它指定例如 exception.BaseError 是所有 X 异常的基类。

现在,还有另一个异常,比如 X.FooError,它当然继承自 exception.BaseError 但更通用,假设它处理无效输入。假设还有许多其他此类类继承自 BaseError,但都是针对一般情况。

 X
|
BaseError
|
FooError

所以我想检查无效输入。那么我应该捕获哪个异常?当然,捕获每个单独的异常是不可能的,所以我捕获了 X.BaseError,然后打印一条错误消息。或者我可以专门捕获 X.FooError 但我会错过所有其他错误情况。

这是执行此操作的标准方法——捕获基本异常吗?如果是,那么为什么存在其他异常(exception)?对于我们想要捕获特定异常的一般情况?

最佳答案

只捕获您可以处理的异常。如果您可以同时处理基本异常和派生异常,则同时捕获两者。但是请确保将派生异常放在第一位,因为第一个发现匹配项的异常处理程序就是使用的异常处理程序。

try:
X.foo()
except X.FooError:
pass
except X.BaseError:
pass

关于python - 决定在 Python 中捕获哪些异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6199884/

28 4 0
文章推荐: c++ - 三元运算符作为 bool 值转换
文章推荐: c# - 无法将类型 'System.EventHandler' 隐式转换为 'System.EventHandler' 以完成 Storyboard
文章推荐: c++ - Lua5.2嵌入C++