首页 > 解决方案 > 我如何在 python 上使用“if”和异常?

问题描述

我有这样的代码:

    a = 0
try:
    b = 2/a
    print(b)
except Exception:
    if (Exception == ZeroDivisionError):
        print("lol")
    else:
        print(Exception)

如果错误是 ZeroDivisionError,我该怎么做,我的程序会打印“lol”?我的程序打印(异常),即使错误是 ZeroDivsionError

标签: pythonpython-3.xexceptiontry-catch

解决方案


您必须首先将捕获的异常绑定到名称。

a = 0
try:
    b = 2 / a
    print(b)
except Exception as exc:
    if isinstance(exc, ZeroDivisionError):
        print("lol")
    else:
        print(exc)

但是,我建议只ZeroDivisionError明确地捕获一个。

try:
    b = 2 / a
    print(b)
except ZeroDivisionError;
    print("lol")
except Exception as exc:
    print(exc)

except子句按顺序检查,因此如果引发其他异常,它将首先匹配失败,ZeroDivisionError然后再成功匹配Exception


推荐阅读