实例
这里就简单用2个function来演示一下异常的传递性
func1
这里num = 1/0明显是一个ZeroDivisionError错误,作为演示
def func1():print("fun1 开始执行")num = 1 / 0print("func1 结束执行")
func2
def func2():print("func2 开始执行")func1()print("func2 结束执行")
main
def main():func2()
main()
运行
当我们运行后会发现控制台出现以下报错
经过分析可以知道从下往上回溯,num = 1/0的错误发生在line3,而由于fun2调用了fun1,main调用了fun2,因此异常发生了传递,在控制台出现了异常信息
抛出异常
将main函数修改一下
def main():try:func2()except Exception as e:print(f"出现异常:{e}")
运行结果
这样就会直接抛出异常出现的原因,捕获到异常