教你使用Python遇到的異常的處理方式!


錯誤與異常

1、區分錯誤與異常

兩種錯誤(都必須改正):語法錯誤(代碼不規范,格式不對或缺少符號)、邏輯錯誤(邏輯不通)

異常:程序運行時發生錯誤的信號

2、異常處理與注意事項

異常處理:程序員特意去捕捉異常,如果捕捉成功,就進入另外一段你定義的邏輯里去運行,使程序不會崩潰

注意:異常處理的邏輯應該是與程序的主邏輯的分離開的;根本不會有人去用運行到一半就崩潰的軟件,所以我們必須提供一種異常處理機制來增強我們程序的健壯性和容錯性

各種異常

1、常見異常

AttributeError試圖訪問一個對象沒有的屬性,比如test.a,但是test沒有屬性a

IOError輸入/輸出異常;基本上就是無法打開文件

ImportError無法引入模塊或包;基本上就是路徑問題或名稱錯誤

IndentationError語法錯誤(的子類) ;代碼沒有正確縮進或對齊

IndexError下標索引超出序列邊界,比如當a只有三個元素,卻試圖訪問a[5]

KeyError鍵異常,試圖訪問字典里不存在的鍵

KeyboardInterruptCtrl+C被按下

NameError使用一個還未被賦予對象的變量

SyntaxErrorPython代碼非法,代碼不能編譯(基本上就是語法錯誤)

TypeError傳入對象類型與要求的不符合

UnboundLocalError試圖訪問一個還未被設置的局部變量,基本上是由於另有一個同名的全局變量,導致你以為正在訪問它

ValueError值異常,傳入一個調用者不期望的值,即使值的類型是正確的

2、其他異常

ArithmeticError  AssertionError  AttributeError  BaseException  BufferError  BytesWarning  DeprecationWarning  EnvironmentError  EOFError  Exception  FloatingPointError  FutureWarning  GeneratorExit  ImportError  ImportWarning  IndentationError  IndexError  IOError  KeyboardInterrupt  KeyError  LookupError  MemoryError  NameError  NotImplementedError  OSError  OverflowError  PendingDeprecationWarning  ReferenceError  RuntimeError  RuntimeWarning  StandardError  StopIteration  SyntaxError  SyntaxWarning  SystemError  SystemExit  TabError  TypeError  UnboundLocalError  UnicodeDecodeError  UnicodeEncodeError  UnicodeError  UnicodeTranslateError  UnicodeWarning  UserWarning  ValueError  Warning  ZeroDivisionError

這些異常都比較少見,所以也沒有必要全部列出來是哪方面的異常,太多了也記不住,所以可以遇到再去搜索這些少見的異常的解決方案

異常處理

1、if判斷式


運行結果:

if判斷式的缺點:

只能針對某一段代碼,對於不同的代碼段的相同錯誤類型需需要寫重復的if來進行處理,顯得非常贅余,可讀性極其差

2、try … except …異常處理


運行結果:

3、主動異常


運行結果:

4、斷言


運行結果:

 

 

此文轉載文,著作權歸作者所有,如有侵權聯系小編刪除!

原文地址:https://www.tuicool.com/articles/uuE32ub

 

需要源代碼或者想了解更多的(點擊這里查看)


免責聲明!

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



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