python學習筆記5_異常

python學習筆記5_異常

一、什麼事異常python

        Python使用異常對象(exception object) 來表示異常狀況。遇到錯誤會發生異常。程序員

        若是異常對象未被處理或被捕捉,程序就會用所謂的回溯(traceback,一種錯誤信息)終止執行。函數

        每一個異常都是一些類的(本例中是ZeroDivisionError)實例,這些實例能夠被引起,而且能夠用不少種方式進行捕捉,使程序捕捉異常並處理異常,從而避免整個程序崩潰。學習

2.、按本身的方式出錯3d

       全部的異常類,都是Exception的子類。對象

   2.一、raiseblog

        要引起異常,要麼是Exception的子類。或者實例參數調用raise。繼承

        返回,沒有任何有關錯誤信息的普通錯誤。返回,一些有關「hyperdrive overload」的錯誤信息。索引

  •         Exception   全部異常的基類
  •         AttributeError   特性引用或賦值失敗時引起
  •         IOError   試圖打開不存在文件(包括其餘狀況)時引起
  •         IndexError  在使用序列中不存在的索引時引起
  •         KeyError    在使用映射中不存在的鍵時引起
  •         NameError 在找不到名字(變量)時引起
  •         SyntaxError 在代碼爲錯誤形式時引起
  •         TypeError 在內建操做或者函數應用於錯誤類型的對象時引起
  •         ValueError 在內建操做或者函數應用於正確類型對象,可是該對象使用不合適的值時引起。
  •         ZeroDivisionError 在除法或者模除操做的第二個參數爲0時引起

     自定義異常類 作用域

      Class SomeCustomException(Exception):pass

  三、捕獲異常

        這個功能可使用 try/except來實現。

          若是捕獲了異常,但又想從新引起它(也就是說傳遞異常),那就能夠調用不帶參數的raise。

  四、多個except子句

       由於繼承eccept的字異常類有不少,若是隻捕獲一種錯誤(上例 捕捉ZeroDivisionError,若是除數爲0正常被過捕獲,當除數是一個字符串的時候那就回引起TypeError的錯誤,就被漏掉。),引其餘錯誤將被漏掉。

        

五、用一個塊捕獲多個異常

        用一塊捕獲多個類型的異常,能夠把異常類型做爲元祖列出。

       

六、捕獲對象

        但願在except子句中訪問異常對象自己,可使用兩個參數。

      

七、全捕捉

         一段代碼捕捉全部的異常。可使用except子句中忽略全部異常類。

隱藏全部的錯誤是很危險的事情,由於會異常全部程序員想不到的錯誤。

八、萬事大吉----else子句

        try:

                print('正常代碼塊 ')

         except:

                print('當發生異常的時候執行。')

        else:

                 print('這是一個沒有任何異常的程序。')

九、最後。。。。。。

     最後,是Finally子句。它能夠用來在可能的異常後進行清理。

      注意在2.5之前的版本中,finally是獨立的,不能組合使用,2.5之後的版本能夠隨意使用了。

十、異常和函數

       異常和函數能很天然的一塊兒工做。若是異常在函數內部引起而不被處理,它就會傳播至(浮到)調用的地方。,若是在那裏也沒處理異常,它就會繼續傳播,一直到達主程序(全局做用域)

      若是那裏沒有異常處理程序,程序會帶這堆棧跟蹤停止。

相關文章
相關標籤/搜索