Python中異常是什麼意思?與錯誤有什麼區別?

老男孩IT教育機構發表於2022-12-15

  在任何程式語言中,編寫程式時出現異常或錯誤情況是常有的事情,也經常有人將錯誤和異常混為一談,認為錯誤就是異常,異常就是錯誤。那麼Python中什麼是異常?錯誤和異常的區別是什麼?本篇文章為大家介紹一下。

  什麼是異常?

  異常即與正常情況不同,何為正常?正常便是直譯器在解釋程式碼時,我們所編寫的程式碼符合直譯器定義的規則,即為正常,當直譯器發現某段程式碼符合語法但有可能出現不正常的情況時,直譯器便會發出一個事件,中斷程式的正常執行。這個中斷的訊號便是一個異常訊號。所以,總體解釋就是,在直譯器發現到程式出現錯誤的時候,則會產生一個異常,若程式沒有處理,則會將該異常丟擲,程式的執行也隨之終止。

  錯誤和異常的區別是什麼?

  對於Python錯誤的概述:它指的是程式碼執行前的語法或邏輯錯誤。拿常規語法錯誤來說,當我們編寫的程式碼過不了語法檢測時,則會直接出現語法錯誤,必須在程式執行前改正,不然寫的程式碼將毫無意義,程式碼是不執行的,也無法捕獲得到。舉個例子,在.py檔案輸入if a=1 print("hello"),輸出結果如下:

  Traceback (most recent call last):

  file "E:/Test_code/test.py",line 1

  if a = 1 print("hello")

  ^SyntaxError:invalid syntax

  函式print()被檢查到有錯誤,是它前面缺少了一個冒號:,所以解析器會復現句法錯誤的那行程式碼,並用一個小箭頭指向行裡檢測到的第一個錯誤,所以我們可以直接找到對應的位置修改其語法。當然除了語法錯誤,還有很多程式奔潰的錯誤,如記憶體溢位等,這類錯誤往往比較隱蔽。

  相比於錯誤,Python異常主要在程式執行過程中,程式遇見邏輯或演算法問題,這時直譯器如果可以處理,則沒問題,如果處理不了,便直接終止程式,便將異常丟擲。這種因為邏輯產生的異常五花八門,還好我們的直譯器都內建好了各種異常的種類,讓我們知道是什麼樣的異常出現,從而對症下藥。

  這裡注意一點,上述語法錯誤是可識別的錯誤,所以直譯器也會預設丟擲一個SyntaxError異常資訊反饋給程式設計師。所以本質上大部分錯誤都是可被輸出列印的,只是因為錯誤程式碼不執行,也就沒法處理,所以捕獲錯誤的異常資訊就變得沒意義。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2928243/,如需轉載,請註明出處,否則將追究法律責任。

相關文章