从Final子句引发的异常

时间:2019-04-25 10:41:51

标签: python python-3.x exception

我知道,一般而言,我们不应该期望finally子句会引发异常,但是,我看到了可能发生这种情况的情况。

您的处理方式是什么,您是否会在try except子句中输入另一个finally嵌套?

听起来有点奇怪。...

1 个答案:

答案 0 :(得分:0)

  

我知道,一般来说,我们不应该期望finally子句会引发异常,但是,我看到可能会发生这种情况。

finally子句中可能会引发错误的情况并不十分普遍,但可以允许。我建议您考虑一下用例是否真的必要(当问题如此笼统时很难说)。

  

除了嵌套到finally子句之外,您还会输入其他尝试吗?

是的,这实际上是处理它的唯一方法。例如,可以这样处理:

try:
    maybe_error()
except SpecificError:
    handle_error()
finally:
    try:
        risky_close_resource()
    except OtherError:
        handle_other_error()
    finally:
        close_everything_without_risks()