實例
這里就簡單用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}")
運行結果
這樣就會直接拋出異常出現的原因,捕獲到異常