捕獲異常
# 對數字變量使用append操作a = 123a.apppend(4)
執行這個程序時,會拋出:
AttributeError: 'int' object has no attribute 'apppend'
我們使用try:except語句進行捕獲。
# 捕獲異常a = 123try: a.apppend(4)except AttributeError: print("數字類型不能使用append操作")
輸出結果如下:
數字類型不能使用append操作
捕獲多個異常
# 捕獲異常a = 123try: # a.apppend(4) print(1/0)except AttributeError: print("數字類型不能使用append操作")except ZeroDivisionError: print("0不能作為除數")
輸出結果:
0不能作為除數
當然也可以類似JDK1.7那樣,把異常放置到一起。
# 捕獲異常a = 123try: a.apppend(4) # print(1/0)except (AttributeError,ZeroDivisionError) as e: print("出現錯誤 %s" %e)
把異常類型放置到一個元祖里面,如果想打印具體的異常信息,可以將異常信息重新命名,然后打印出來。
輸出結果如下:
出現錯誤 'int' object has no attribute 'apppend'
使用Exception捕獲所有異常
# 捕獲異常a = 123try: print(1/'kk')except Exception as e: print("出現錯誤 %s" %e)
統一用Exception
進行捕獲,輸出結果如下:
出現錯誤 unsupported operand type(s) for /: 'int' and 'str'
自定義異常
# 捕獲異常a = 123try: if a == 123: raise NameError("a是不能等于123的哦")except NameError as e: print("出現錯誤 %s" %e)
可以使用raise關鍵字和NameError,輸出結果如下:
出現錯誤 a是不能等于123的哦
finally語句
try: print(1/0)except Exception as e: print("出現錯誤 %s" %e)finally: print("執行finally")
執行結果如下:
出現錯誤 division by zero執行finally
說明就算拋出了一次,finally語句仍然會被執行。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林站長站的支持。如果你想了解更多相關內容請查看下面相關鏈接
新聞熱點
疑難解答