Python中異常是什麼意思?與錯誤有什麼區別?
在任何程式語言中,編寫程式時出現異常或錯誤情況是常有的事情,也經常有人將錯誤和異常混為一談,認為錯誤就是異常,異常就是錯誤。那麼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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python中異常與錯誤有什麼區別?Python入門教程Python
- python中錯誤和異常有什麼區別Python
- dns異常是什麼意思 dns異常怎麼處理DNS
- 共享儲存是什麼意思?與DRBD有什麼區別?
- 什麼是python?與PHP有什麼區別?PythonPHP
- 雲桌面是什麼意思?與堡壘機有什麼區別?
- 容器雲是什麼意思?與堡壘機有什麼區別?
- Telnet是什麼意思?與SSH有啥區別?
- 冗餘是什麼意思?與雙機熱備有什麼區別?
- Python是什麼意思?Python有什麼用?Python
- 海外主機是什麼意思?與國內主機有什麼區別?
- CRM和CRM系統是什麼意思,有什麼區別?
- 多因子認證是什麼意思?與雙因子認證有什麼區別?
- 什麼是中斷?什麼是異常?它們有何區別?
- Java和Python是什麼?有什麼區別?JavaPython
- Linux中什麼是打包?與歸檔有什麼區別?Linux
- 異常是什麼和怎麼去處理!--
- 靜態IP是什麼意思?和動態IP 有什麼區別
- 電腦gpu是什麼意思 gpu和cpu有什麼區別不同GPU
- mysql報1045錯誤是什麼意思MySql
- HTTP中Get與Post有什麼區別?HTTP
- python中len什麼意思Python
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- python和nodejs有什麼區別PythonNodeJS
- 測試面試題:cookie/session/token 分別表示什麼意思,有什麼區別?面試題CookieSession
- JQuery中$(document)是什麼意思有什麼作用jQuery
- Memcached與Redis有什麼區別Redis
- innerHTML與outerHTML有什麼區別?HTML
- AppSec與DevSecOps有什麼區別?APPdev
- BFC與IFC有什麼區別?
- 什麼是Python直譯器?和Python IDE有什麼區別?PythonIDE
- 原生IP是什麼?與其他IP有什麼區別?
- CRM什麼意思?有什麼用?
- Python入門:Python 2與Python3有什麼區別?Python
- python中global是什麼意思?Python
- python中mat是什麼意思?Python
- python中return是什麼意思?Python
- 美顏API是什麼意思?美顏API和美顏SDK有什麼區別?API