千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Python的異常處理

Python的異常處理

來源:千鋒教育
發布人:xqq
時間: 2023-11-06 14:56:41 1699253801

什么是異常?

異常即是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。

一般情況下,在Python無法正常處理程序時就會發生一個異常。

異常是Python對象,表示一個錯誤。

當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。

異常處理

捕捉異常可以使用try/except語句。

try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息并處理。

如果你不想在異常發生時結束你的程序,只需在try里捕獲它。

語法:

以下為簡單的try....except...else的語法:

try:

<語句>#運行別的代碼

except<名字>:

<語句>#如果在try部份引發了'name'異常

except<名字>,<數據>:

<語句>#如果引發了'name'異常,獲得附加的數據

else:

<語句>#如果沒有異常發生

try的工作原理是,當開始一個try語句后,python就在當前程序的上下文中作標記,這樣當異常出現時就可以回到這里,try子句先執行,接下來會發生什么依賴于執行時是否出現異常。

如果當try后的語句執行時發生異常,python就跳回到try并執行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發新的異常)。

如果在try后的語句里發生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結束程序,并打印缺省的出錯信息)。

如果在try子句執行時沒有發生異常,python將執行else語句后的語句(如果有else的話),然后控制流通過整個try語句。

實例

下面是簡單的例子,它打開一個文件,在該文件中的內容寫入內容,且并未發生異常:

#!/usr/bin/python

#-*-coding:UTF-8-*-

try:

fh=open("testfile","w")

fh.write("這是一個測試文件,用于測試異常!!")

exceptIOError:

print"Error:沒有找到文件或讀取文件失敗"

else:

print"內容寫入文件成功"

fh.close()

以上程序輸出結果:

$pythontest.py

內容寫入文件成功

$cattestfile#查看寫入的內容

這是一個測試文件,用于測試異常!!

實例

下面是簡單的例子,它打開一個文件,在該文件中的內容寫入內容,但文件沒有寫入權限,發生了異常:

#!/usr/bin/python

#-*-coding:UTF-8-*-

try:

fh=open("testfile","w")

fh.write("這是一個測試文件,用于測試異常!!")

exceptIOError:

print"Error:沒有找到文件或讀取文件失敗"

else:

print"內容寫入文件成功"

fh.close()

在執行代碼前為了測試方便,我們可以先去掉testfile文件的寫權限,命令如下:

chmod-wtestfile

再執行以上代碼:

$pythontest.py

Error:沒有找到文件或讀取文件失敗

使用except而不帶任何異常類型

你可以不帶任何異常類型使用except,如下實例:

try:

正常的操作

......................

except:

發生異常,執行這塊代碼

......................

else:

如果沒有異常執行這塊代碼

以上方式try-except語句捕獲所有發生的異常。但這不是一個很好的方式,我們不能通過該程序識別出具體的異常信息。因為它捕獲所有的異常。

使用except而帶多種異常類型

你也可以使用相同的except語句來處理多個異常信息,如下所示:

try:

正常的操作

......................

except(Exception1[,Exception2[,...ExceptionN]]]):

發生以上多個異常中的一個,執行這塊代碼

......................

else:

如果沒有異常執行這塊代碼

try-finally語句

try-finally語句無論是否發生異常都將執行最后的代碼。

try:

<語句>

finally:

<語句>#退出try時總會執行

raise

實例

#!/usr/bin/python

#-*-coding:UTF-8-*-

try:

fh=open("testfile","w")

fh.write("這是一個測試文件,用于測試異常!!")

finally:

print"Error:沒有找到文件或讀取文件失敗"

如果打開的文件沒有可寫權限,輸出如下所示:

$pythontest.py

Error:沒有找到文件或讀取文件失敗

同樣的例子也可以寫成如下方式:

#!/usr/bin/python

#-*-coding:UTF-8-*-

try:

fh=open("testfile","w")

try:

fh.write("這是一個測試文件,用于測試異常!!")

finally:

print"關閉文件"

fh.close()

exceptIOError:

print"Error:沒有找到文件或讀取文件失敗"

當在try塊中拋出一個異常,立即執行finally塊代碼。

finally塊中的所有語句執行后,異常被再次觸發,并執行except塊代碼。

參數的內容不同于異常。

以上內容為大家介紹了Python的異常處理,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.mycheba.com/

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲一区二区三区体验区 | 日韩综合一区二区 | 日韩欧美一区二区大胸视频 | 思思久久96热在精品国产高清 | 亚洲国产91在线 | 日本乱子伦视频免费观看 |