一.常見異常
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