溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中錯誤和異常應(yīng)該怎么區(qū)分

發(fā)布時間:2020-08-04 14:27:22 來源:億速云 閱讀:196 作者:清晨 欄目:編程語言

這篇文章主要介紹python中錯誤和異常應(yīng)該怎么區(qū)分,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

python異常和錯誤有什么區(qū)別

1. 錯誤

從軟件方面來說,錯誤是語法或是邏輯上的。語法錯誤指示軟件的結(jié)構(gòu)上有錯誤,導(dǎo)致不能被解釋器解釋或編譯器無法編譯。這些錯誤必須在程序執(zhí)行前糾正。當(dāng)程序的語法正確后,剩下的就是邏輯錯誤了。邏輯錯誤可能是由于不完整或是不合法的輸入所致;在其他情況下,還可能是邏輯無法生成,計算,或是輸出結(jié)果需要的過程無法執(zhí)行。這些錯誤通常分別被稱為域錯誤和范圍錯誤。

當(dāng) Python 檢測到一個錯誤時,解釋器就會指出當(dāng)前流已經(jīng)無法繼續(xù)執(zhí)行下去,這時候就出現(xiàn)了異常。

2. 異常

對異常的最好描述是: 它是因?yàn)槌绦虺霈F(xiàn)了錯誤而在正??刂屏饕酝獠扇〉男袨椤_@個行為又分為兩個階段: 首先是引起異常發(fā)生的錯誤,然后是檢測(和采取可能的措施)階段。

第一個階段是在發(fā)生了一個異常條件(有時候也叫做例外的條件)后發(fā)生的。只要檢測到錯誤并且意識到異常條件,解釋器會引發(fā)一個異常。引發(fā)也可以叫做觸發(fā)或者生成,解釋器通過它通知當(dāng)前控制流有錯誤發(fā)生。

Python 也允許程序員自己引發(fā)異常,無論是 Python 解釋器還是程序員引發(fā)的,異常就是錯誤發(fā)生的信號,當(dāng)前流將被打斷,用來處理這個錯誤并采取相應(yīng)的操作,這就是第二階段。

對異常的處理發(fā)生在第二階段。異常引發(fā)后,可以調(diào)用很多不同的操作,可以是忽略錯誤(記錄錯誤但不采取任何措施, 采取補(bǔ)救措施后終止程序),或是減輕問題的影響后設(shè)法繼續(xù)執(zhí)行程序。所有的這些操作都代表一種繼續(xù),或是控制的分支,關(guān)鍵是程序員在錯誤發(fā)生時可以指示程序如何執(zhí)行。

類似 Python 這樣支持引發(fā)和處理異常(這更重要)的語言,可以讓開發(fā)人員可以在錯誤發(fā)生時更直接地控制它們。程序員不僅僅有了檢測錯誤的能力,還可以在它們發(fā)生時采取更可靠的補(bǔ)救措施。

常見錯誤:ipython下

1. a : NameError

在沒有定義一個變量的時候直接引用

2. if True : SyntaxError

語法錯誤

3. f = open('1.txt') : IOError

試圖打開一個不存在的文件的時候

4. 10/0 : ZeroDivisionError

5. a = int('dd') : ValueError

進(jìn)行強(qiáng)制類型轉(zhuǎn)換的時候遇到的錯誤

try-except:異常處理

try:
    try_suite
except Exception [, e]:
    exception_block

以上是python中錯誤和異常應(yīng)該怎么區(qū)分的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI