python - 我如何在 python 上使用“if”和异常?
问题描述
我有这样的代码:
a = 0
try:
b = 2/a
print(b)
except Exception:
if (Exception == ZeroDivisionError):
print("lol")
else:
print(Exception)
如果错误是 ZeroDivisionError,我该怎么做,我的程序会打印“lol”?我的程序打印(异常),即使错误是 ZeroDivsionError
解决方案
您必须首先将捕获的异常绑定到名称。
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
。
推荐阅读
- c# - .Net/VisualStudio 如何处理项目依赖项,每个项目依赖项具有相同 nuget 包的不同 nuget 目标
- python - 在虚拟环境中卸载 pip
- angular - 如何在没有html编译的情况下重定向`refresh`上的页面?
- azure-powershell - Set-AzureRmKeyVaultAccessPolicy cmdlet 将策略分配为用户而不是应用程序
- php - 替换字符串中的字符(连同存在于数组中的字符)
- appdynamics - 试用 AppDynamics 包安装失败
- java - 重塑 DatePicker
- virtualbox - windows pc中的作业调度
- html - 导航栏获取背景图片的属性
- tensorflow - 如何在 android 7 和 8 上使用 tensorflow-lite nnapi