python - 如何从块中获取所有可能的异常?
问题描述
有没有办法确定代码块中可能引发的所有可能异常?(例如,一些基于代码块建议捕获一些特定异常而不是仅仅引发该异常的逻辑太通用了。
try:
m = check_output(["dd", "--version"]).decode()
ver_line = m.split('\n')[0]
ver = ver_line.split(' ')
if float(ver[2]) >= 8.24:
logger.info("coreutils version: {}, required >= 8.24".format(ver[2]))
else:
logger.warn("coreutils version: {}, required >= 8.24."
"Please ensure that the right version is installed".format(ver[2]))
sys.exit(1)
except Exception:
logger.warn("could not determine coreutils version, required >= 8.24")
return
解决方案
将异常设置为 e,您可以打印异常,无论它是什么您通过使用确定错误
type(e) == IndexError
然后你比较它的值
a = ['a', 'b', 1, 3, 4, 5, 6]
for i in range(0, 20):
try:
print(int(a[i]))
except Exception as e:
if type(e) == IndexError:
pass
else:
print("ERROR",e)
推荐阅读
- c# - 无法在 wcf 服务中的 soapui 标头中传递用户名和密码
- javascript - 使用 react redux 的异步数据加载持久化
- spring - Spring cloud config目录结构未拾取
- java - 在 Apache SPARK 中使用分层查询
- node.js - 无法使用 nginx 在 express 服务器上配置 SSL
- javascript - 另一个 Bootstrap 模式中可用的 Javascript 函数
- c - 条件运算符:? : 在 c 中不工作
- python-3.x - 如何在 android studio 中配置 Python 解释器
- python - 从字符串中解析格式奇怪的时间表达式
- asp.net - 在生产服务器中调用 API 时出现 404 错误