我试图理解Python如何在异常处理中处理异常。例如,考虑以下内容:
try:
try:
1/0
finally:
raise Exception("Exception!")
except Exception as e:
print(e)
我的理解是,这段代码引发的两个异常(ZeroDivisionError和finally块中引发的泛型异常)都应该由外部exception块“处理”。。。但是Python如何决定将哪一个分配给e呢?在我的机器上运行代码时,Python似乎选择将“最近”的异常(在finally块中抛出的异常)分配给e。
这通常是真的吗?另外,在这样的情况下,在错误处理中可能会抛出多个异常,而这些异常都是由一个outer except块处理的,那么outer except块是否有办法分别处理每个错误?