Python中異常與錯誤有什麼區別?Python入門教程
當我們撰寫Python程式碼的時候,肯定會遇到程式碼錯誤或者異常的情況,這時很多人就會問:Python中異常與錯誤有什麼區別?如何理解呢?我們一起來看看詳細的內容介紹吧。
什麼是錯誤?
錯誤分為兩種情況:第一種語法錯誤,程式碼不符合直譯器或者編譯器語法;第二種邏輯錯誤,不完整或者不合法輸入或者計算出現問題。
什麼是異常?
所謂的異常就是執行過程中出現萬體導致程式無法執行,同樣分為兩種情況:第一種程式遇到邏輯或者演算法問題;第二種執行過程中計算機錯誤,記憶體不夠或者IO錯誤。
Python中錯誤和異常有什麼區別?
錯誤是程式碼執行前的語法或者邏輯錯誤,語法錯誤在執行前修改,邏輯錯誤無法修改;
而異常分為兩個步驟,異常產生,檢查到錯誤且直譯器認為是異常,丟擲異常;第二是異常處理,截獲異常,忽略或者終止程式處理異常。
從軟體方面來說,錯誤是語法或者邏輯上的問題,語法錯誤指示軟體的結構上有錯誤,導致不能被直譯器解釋或者編譯器無法編譯,這些錯誤必須在程式執行前進行糾正;當程式語法正確後,剩下的就是邏輯錯誤問題,邏輯錯誤可能是由於不完整或不合法的輸入導致,在其他情況下,可能是邏輯無法生成、計算或輸出結果需要的過程無法執行。這些錯誤通常分別被稱為域錯誤和範圍錯誤。
當Python檢測到一個錯誤時,直譯器就會指出當前已經無法繼續執行下去,這時就出現異常。
而異常它是因為程式出現了錯誤而在正常控制流以外採取的行為,這個行為分為兩個階段:首先是引起異常發生的錯誤,然後是檢測階段;
第一個階段是在發生了一個異常條件後發生的,只要檢測到錯誤並且意識到異常條件,直譯器會引發一個異常,引發也可以叫做觸發或生成,直譯器透過它通知當前控制流有錯誤發生;
Python也允許程式設計師自己引發異常,無論是Python直譯器還是程式設計師引發的,異常就是錯誤發生的訊號,當前流將被打斷,用來處理這個錯誤並採取相應的操作,這就是第二個階段。
對異常的處理發生在第二階段,異常引發後,可以呼叫很多不同的操作,可以是忽視錯誤,或是減輕問題的影響後設法繼續執行程式,所以的這些操作都代表一種繼續,或是控制的分支,關鍵是程式設計師在錯誤發生時可以指示程式如何執行。
類似Python這樣支援引發和處理異常的語言,可以讓開發人員在錯誤發生時更直接地控制它們,程式設計師不僅僅有了檢測錯誤的能力,還可以在它們發生時採取更可靠的補救措施。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2785263/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python中異常是什麼意思?與錯誤有什麼區別?Python
- python中錯誤和異常有什麼區別Python
- 【Python入門教程】SQL和Python有什麼區別?PythonSQL
- Python中tuple和list有什麼區別?Python入門!Python
- Python中for迴圈和while迴圈有什麼區別?Python入門教程PythonWhile
- Python入門:Python 2與Python3有什麼區別?Python
- python錯誤與異常Python
- Python IDE和直譯器有什麼區別?Python入門教程PythonIDE
- Python開發中TCP和UDP區別是什麼?Python入門教程PythonTCPUDP
- 自動化測試與軟體測試有什麼區別?Python入門教程Python
- Python的集合與列表有什麼區別?Python學習教程Python
- 什麼是python?與PHP有什麼區別?PythonPHP
- Python學習常見的錯誤有哪些?Python基礎入門Python
- 什麼是中斷?什麼是異常?它們有何區別?
- Python學習教程_Python語言中=和==有什麼區別?Python
- Python基礎之:Python中的異常和錯誤Python
- Python 中 "is" 與 "==" 有啥區別?Python
- Swift 中的錯誤與異常Swift
- 什麼是異常?python處理異常的方式有幾種?Python
- Python IDLE和Python的區別!Python入門教程Python
- 【GoLang 那點事】你眼中的異常和錯誤有什麼區別?歡迎留言討論Golang
- Java和Python是什麼?有什麼區別?JavaPython
- Python基礎入門知識點——Python中的異常Python
- [python官方文件]8錯誤和異常Python
- python中的列表和元組有什麼區別Python
- 資料分析用python語言有什麼好處?Python入門教程Python
- Python指令碼和網頁有什麼區別?差異介紹!Python指令碼網頁
- python和nodejs有什麼區別PythonNodeJS
- Python語言中=和==有什麼區別?Python
- Python入門教程:Day11-檔案和異常Python
- scrapy和scrapy-redis有什麼區別?Python基礎教程RedisPython
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- PHP與Python有什麼區別?各具有哪些特點?PHPPython
- Python中/與//的區別是什麼?其如何使用?Python
- 在Python中,val、exec和 compile 有什麼區別?PythonCompile
- Python中類方法和例項方法有什麼區別?Python
- python中isinstance()和type()有什麼區別?如何使用?Python
- Python 正則模式中 search() 和 match() 有什麼區別?Python模式