python 捕獲異常操作


一.常見異常

 

1.語法錯誤:SyntaxError:invalid syntax

(1)案例:

(1)解決方法:

①查看代碼有沒有紅色波浪線

②熟悉python基本語法

 

2.變量名不存在:NameError:name 'b' is not defined

(1)案例:

(2)解決方法:

①檢查對應的變量名是否有定義並賦值,是否寫錯了變量名稱

 

 3.索引錯誤:IndexError: list index out of range

(1)案例:

(2)解決方法:

①檢查lis對象索引選擇是否超出了本來的長度

 

4.關鍵字錯誤:KeyError: 'c'

(1)案例:

(2)解決方法:

①檢查字典里是否存在這個key值

 

5.類型錯誤:TypeError: list indices must be integers, not str

(1)案例:

(2)解決方法:

①檢查清楚數據類型是否有誤

 

 6.參數傳值錯誤:ValueError: invalid literal for int() with base 10: 'ab'(主要發生在函數里面)

(1)案例:

(2)解決方法:

①弄清楚形參的數據類型

②再傳對應形參的數據類型

 

7.屬性錯誤:AttributeError: A instance has no attribute 'acc'

(1)案例:

(2)解決方法:

①檢查類里是否存在這個被調用的方法

②一般不能自動匹配出方法的多半有問題

 

8.輸入輸出錯誤:IOError

(1)案例:

(2)解決方法:

①找到代碼中關於輸入輸出的相關操作

②檢查文件路徑和名稱對不對

 

二.常見異常總結

1.SynataxError:語法錯誤

2.NameError:試圖訪問的變量名不存在

3.IndexError:索引錯誤,使用的所以你不存在,常為索引超出序列范圍

4.KeyError:使用了映射中不存在的關鍵字(鍵)時引發的關鍵字錯誤

5.TypeError:類型錯誤,內建操作或是函數應於在錯誤類型的對象時會引發類型錯誤

6.ValueError:值錯誤,傳給對象的參數類型不正確,例如給int()函數傳入了字符串數據類型

7.AttributeError:屬性錯誤,特性引用和賦值失敗時會引發屬性錯誤

8.IOError:輸入輸出錯誤

異常不局限於以上八中,這只是很常見的八種異常

 

三.捕獲異常

1.try...except組合語法

(1)代碼:

try:

  正常的操作

except:

  發生異常,執行這塊代碼

(2)案例:

 

 

2.try...except...else組合語法

(1)代碼:

try:

  正常的操作

except:

  發生異常,執行這塊代碼

else:

  如果沒有異常,執行這塊代碼

(2)案例:

 

3.try...except...except(多個異常處理)

(1)代碼:

try:

  正常的操作

except A:

  發生異常A,執行這塊代碼

except B:

  發生異常B,執行這塊代碼

except:

  發生其它異常,執行這塊代碼

else:

  如果沒有異常,執行這塊代碼

(2)案例:

 

4.try...except(A,B)(一次捕獲多個異常)

(1)代碼:

try:

  正常的操作

except(A,B):

  發生異常A和B,執行這塊代碼

(2)案例:

 

5.try...except...finally組合語法:(try...finally也可以)

(1)代碼:

try:

  正常的操作

except:

  發生異常,執行這塊代碼

else:

  如果沒有異常,執行這塊代碼

finally:

  不管有沒有異常,都執行這塊代碼

(2)案例:

 

6.try...except(嵌套)

(1)代碼:

try:

  正常的操作

  try:

  正常的操作

  finally:

  不管有沒有異常,都執行這塊代碼

except A:

  發生異常,執行這塊代碼

(2)案例:

 

四.處理異常(在腳本執行不成功時,我們希望能把信息打印出來)

1.如果已經知道會發生什么異常:

 

2.不知道會發生什么異常(萬能的)---------所有的異常都繼承Exception


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM