Skip to main content
 首页 » 编程设计

python之在 Python 2 的异常中处理错误

2025年05月04日23thcjp

我的代码会像这样引发异常:

try: 
    causeEitherError1orError2 
except Error1: 
    handle Error1 
    cause Error2 
except Error2: 
    handle Error2 

尝试操作 A 会导致 Error1 或 Error2。处理 Error1 有时会导致 Error2。当 Error2 可能由原始尝试或错误 1 ​​引起时,我如何处理 Error1 和 Error2?

请您参考如下方法:

总的来说,这似乎是一个复杂的设计,但您确实可以使用一个 except 大括号捕获多个异常。您还可以根据自己的优势嵌套 try-except 处理程序。一种可能的设计是:

try: 
    ... # action A 
except (Error1, Error2) as e: 
    try: 
        ... # handle e 
    except Error2 as f: 
        ... # handle f 

如果您想辨别第一次引发的是什么Exception,您始终可以检查类型:

print(type(e)) # prints Error1 or Error2 depending on what was raised 

或者,更准确地说,通过 isinstance 检查缩小范围:

if isinstance(e, Error1): 
    ... # handle e as Error1 
else: 
    ... # handle e as Error2