温馨提示×

Python中怎么正确管理异常传播链

小亿
84
2024-03-12 17:23:42
栏目: 编程语言

在Python中,可以通过try-except语句来捕获异常,并使用raise语句来手动抛出异常。当编写代码时,可以选择在某些情况下捕获异常并处理它,而在其他情况下将异常传播到调用者处。

以下是一个示例代码,演示了如何正确管理异常传播链:

def func1():
    try:
        raise ValueError("Error in func1")
    except ValueError as e:
        print("Caught exception in func1")
        raise  # re-raise the exception

def func2():
    try:
        func1()
    except ValueError as e:
        print("Caught exception in func2")
        raise  # re-raise the exception

try:
    func2()
except ValueError as e:
    print("Caught exception in main")

在这个例子中,func1()函数中抛出了一个ValueError异常,然后在func2()函数中捕获并重新抛出该异常。最后,在主函数中再次捕获异常并处理它。通过这种方式,异常会正确地传播到调用者处,而不会在传播过程中丢失或被修改。

0