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("未知異常")