阅读量:3
在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()函数中捕获并重新抛出该异常。最后,在主函数中再次捕获异常并处理它。通过这种方式,异常会正确地传播到调用者处,而不会在传播过程中丢失或被修改。