當函數/方法執行代碼時出現異常,會將異常傳遞給函數/方法的調用一方,如果傳遞到主程序,仍然沒有異常處理,程序纔會被終止。
需求:定義函數 demo1() 完成輸入 num,定義函數 demo2() 調用 demo1(),在主程序中調用 demo2()。
def demo1():
print(num)
def demo2():
demo1()
demo2()
在執行以上代碼,會發生異常,可以使用下面代碼進行捕獲異常。
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ羣:531509025
尋找有志同道合的小夥伴,互幫互助,羣裏還有不錯的視頻學習教程和PDF電子書!
'''
try:
demo2()
except NameError:
print("請輸入正確的名字")
except Exception as result:
print("未知錯誤 %s" % result)
在開發中,可以在主函數中增加異常捕獲而在主函數中調用的其他函數,因爲Python中的異常是可以傳遞的,所有隻要出現異常,都會傳遞到主函數的異常捕獲中這樣就不需要在代碼中,增加大量的異常捕獲,能夠保證代碼的整潔。
例子:
# 函數嵌套調用
def demo1():
print(num)
def demo2():
demo1()
# 捕獲異常
try:
demo2()
except NameError:
print("請輸入正確的名字...")
except Exception:
print("如果發生未知異常的處理方式")