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

錯誤與異常

一、區分錯誤與異常程序員

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

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

二、異常處理與注意事項ui

異常處理:程序員特地去捕捉異常,若是捕捉成功,就進入另一段你定義的邏輯裏去運行,使程序不會崩潰spa

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

各類異常

一、常見異常code

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

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

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

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

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

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

KeyboardInterruptCtrl+C被按下

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

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

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

UnboundLocalError試圖訪問一個還未被設置的局部變量,基本上是因爲另有一個同名的全局變量,致使你覺得正在訪問它

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

二、其餘異常

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

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

異常處理

一、if判斷式


運行結果:

if判斷式的缺點:

只能針對某一段代碼,對於不一樣的代碼段的相同錯誤類型需須要寫重複的if來進行處理,顯得很是贅餘,可讀性極其差

二、try … except …異常處理


運行結果:

三、主動異常


運行結果:

四、斷言


運行結果:

 

 

此文轉載文,著做權歸做者全部,若有侵權聯繫小編刪除!

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

 

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

相關文章
相關標籤/搜索