带有多个 except block 的 Python Try/Except

标签 python exception

try:
    raise KeyError()
except KeyError:
    print "Caught KeyError"
    raise Exception()
except Exception:
    print "Caught Exception"

正如预期的那样,提高 Exception()在第 5 行未陷入决赛 except Exception条款。为了捕获 except KeyError 中的异常 block ,我必须添加另一个 try...except像这样复制最后的 except Exception逻辑:

try:
    raise KeyError()
except KeyError:
    print "Caught KeyError"
    try:
        raise Exception()
    except Exception:
        print "Caught Exception"
except Exception:
    print "Caught Exception"

在 Python 中,是否可以将执行流程传递给最终的 except Exception像我想做的那样阻止?如果没有,是否有减少逻辑重复的策略?

最佳答案

您可以添加另一层try 嵌套:

try:
    try:
        raise KeyError()
    except KeyError:
        print "Caught KeyError"
        raise Exception()
except Exception:
    print "Caught Exception"

关于带有多个 except block 的 Python Try/Except,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755248/

相关文章:

c++ - C++中的安全指针取消引用

java - Guava Lists.transform - 如果一个输入错误怎么办?

python - 如何解析在查看源代码中不显示代码的网站?

python - 更正历史拼写

python - 在 pandas 中查找二维补集

python - mysql sqlalchemy mysql隔离错误

c# - 内部异常 C#

python - 使用循环检查值是否已更改?

java - 如何从方法中正确处理异常?

java - 如何避免异常阴影?