python - 如何在 Python 中一次捕获多个异常并处理单个异常?

标签 python exception

我知道你可以用这种方式处理多个异常

try:
    pass

except EOFError:
    deals_with_EOFError()

except FileNotFoundError:
    deals_with_FileNotFoundError()

但是,我想知道如何通过这样的方式来完成

try:
    pass
except (EOFError, FileNotFoundError):

    if EOFError:
        deals_with_EOFError()
    else:
        deals_with_FileNotFoundError()

最佳答案

您可以使用内置的 type() 来确定错误对象的类型。

try:
    pass
except (EOFError, FileNotFoundError) as e:
    if type(e) is EOFError:
        deals_with_EOFError()
    else:
        deals_with_FileNotFoundError()

但是,您的初始示例具有更好的可读性。

try:
    pass
except EOFError:
    deals_with_EOFError()
except FileNotFoundError:
    deals_with_FileNotFoundError()

关于python - 如何在 Python 中一次捕获多个异常并处理单个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62991501/

相关文章:

python - 调用 setParent 时 QMenu 显示不正确

python - 如何通过python更准确地聚合数据框中的值?

php - 处理PHP中的异常

c++ - 当我抛出异常时会发生什么?

python - 多处理 numpy 未定义错误

python - 类型错误:缺少一个必需的位置参数

python - 如何在 python-telegram-bot 包装器中使用 ForceReply

php - Laravel:在哪里抛出 HTTP 异常

c# - 为什么在调用者而不是有问题的行上抛出异常

android - 使用 Proguard 混淆后出现 SuperNotCalledException