日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中异常和错误是同一个概念吗_Python 错误与异常

發(fā)布時間:2024/9/27 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中异常和错误是同一个概念吗_Python 错误与异常 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2017-08-01 13:40:17

在程序運行過程中,總會遇到各種各樣的錯誤。

有的錯誤是程序編寫有問題造成的,比如本來應該輸出整數(shù)結(jié)果輸出了字符串,這種錯誤我們通常稱之為bug,bug是必須修復的。

有的錯誤是用戶輸入造成的,比如讓用戶輸入email地址,結(jié)果得到一個空字符串,這種錯誤可以通過檢查用戶輸入來做相應的處理。

還有一類錯誤是完全無法在程序運行過程中預測的,比如寫入文件的時候,磁盤滿了,寫不進去了,或者從網(wǎng)絡抓取數(shù)據(jù),網(wǎng)絡突然斷掉了。這類錯誤也稱為異常,在程序中通常是必須處理的,否則,程序會因為各種問題終止并退出。

既然有這么多可能出現(xiàn)的錯誤,那么錯誤的處理工作就顯得非常重要了。

異常處理

使用try...except捕獲錯誤,異常處理并不僅僅處理那些直接發(fā)生在try子句中的異常,而且還能處理子句中調(diào)用的函數(shù)(甚至間接調(diào)用的函數(shù))里拋出的異常。

try語句按照如下方式工作;

首先,執(zhí)行try子句(在關(guān)鍵字try和關(guān)鍵字except之間的語句)

如果沒有異常發(fā)生,忽略except子句,try子句執(zhí)行后結(jié)束。

如果在執(zhí)行try子句的過程中發(fā)生了異常,那么try子句余下的部分將被忽略。如果異常的類型和 except 之后的名稱相符,那么對應的except子句將被執(zhí)行。最后執(zhí)行 try 語句之后的代碼。

如果一個異常沒有與任何的except匹配,那么這個異常將會傳遞給上層的try中。

一個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有一個分支會被執(zhí)行。

處理程序?qū)⒅会槍膖ry子句中的異常進行處理,而不是其他的 try 的處理程序中的異常。

try:

try_suiteexcept:

exception block

上面except子句不跟任何異常和異常參數(shù),所以無論try捕獲了任何異常,都將交給except子句的exception block來處理。

一個except子句可以同時處理多個異常,這些異常將被放在一個括號里成為一個元組,例如:

except(RuntimeError, TypeError, NameError):pass

try except 語句還有一個可選的else子句,如果使用這個子句,那么必須放在所有的except子句之后。這個子句將在try子句沒有發(fā)生任何異常的時候執(zhí)行。使用 else 子句比把所有的語句都放在 try 子句里面要好,這樣可以避免一些意想不到的、而except又沒有捕獲的異常。例如:

for arg in sys.argv[1:]:try:

f= open(arg, 'r')exceptIOError:print('cannot open', arg)else:print(arg, 'has', len(f.readlines()), 'lines')

f.close()

定義清理行為

try...except...finally... : finally子句它定義了無論在任何情況下都會執(zhí)行的清理行為。

異常拋出

raise命令會將異常進行拋出。

如果一個異常在 try 子句里(或者在 except 和 else 子句里)被拋出,而又沒有任何的 except 把它截住,那么這個異常會在 finally 子句執(zhí)行后再次被拋出。

要是在當前函數(shù)里沒有找到的話,它會將異常傳遞給上層的調(diào)用函數(shù),看看那里能不能處理。

如果在最外層(全局“main”)還是沒有找到的話,解釋器就會退出,同時打印出traceback以便讓用戶找到錯誤產(chǎn)生的原因。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的python中异常和错误是同一个概念吗_Python 错误与异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。