python中處理多個異常
- 2019 年 10 月 5 日
- 筆記
知識回顧
自定義異常:
1.自定義類
2.學會繼承,繼承Exception
3.自定義異常的構造函數
4.手動拋出異常使用raise
本節知識影片教程
以下開始文字講解:
一、處理多個異常
1.把所有的異常進行明細化,確定異常條件,直接處理已知的異常,分別進行處理。
這種情況下就是多次使用except這個關鍵詞來處理異常。
2.統一處理所有異常,把多個已知的異常歸類到一起處理。
我們把多個明確的異常歸類到一起,用同一種方式來進行處理。我們把多個異常寫到同一個except中用小括弧括起來,中間的異常用逗號隔開。
except(MyCustomerException1,MyCustomerException2):
print("這裡處理異常1和異常2的結果")
3.處理其它未知的異常。
處理未知異常的技巧就是在except後面不要加某一種異常情況,此時默認會處理所有的未知異常。
二、案例:做多個異常處理的案例
1.自定義多個異常
2.根據實際情況,來調用自定義的幾個異常
3.處理異常
三、捕獲異常取別名
在try…except語句中的except語句後面實際的異常,如果類名太長,我們可以取別名。格式 except 類常類名 as 別名
except MyCustomerException1 as mce1:
四、總結強調
1.掌握所有異常情況的情況方法try。。。Except
2.掌握自定義異常的處理方法
3.掌握異常的明細化處理
4.掌握自定義異常的構造函數的資訊傳入和輸出
5.掌握使用同一個except處理多個異常
本節知識源程式碼;
#第一個自定義異常 class MyCustomerException1(Exception): def __init__(self,code=100,desc="異常消息:100"): self.code=code self.desc=desc #自定義第二個異常 class MyCustomerException2(Exception): pass a=input("請輸出一個值:") # try: # if a=="qqq": # raise MyCustomerException1 # elif a=="123": # raise MyCustomerException2("這裡異常為2") # else: # b=a/0 # except MyCustomerException1 as mce1: # print("這裡觸發了第一個異常",mce1.code,mce1.desc) # except MyCustomerException2: # print("這裡觸發了第二個異常") # except: # print("這裡處理未知異常") try: if a=="qqq": raise MyCustomerException1 elif a=="123": raise MyCustomerException2("這裡異常為2") else: b=a/0 except(MyCustomerException1,MyCustomerException2): print("這裡處理異常1和異常2的結果") except: print("未知異常")