首页 > 解决方案 > 如何从块中获取所有可能的异常?

问题描述

有没有办法确定代码块中可能引发的所有可能异常?(例如,一些基于代码块建议捕获一些特定异常而不是仅仅引发该异常的逻辑太通用了。

    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

标签: pythonpython-3.x

解决方案


将异常设置为 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)

推荐阅读