av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

Python異常處理機制結構實例解析

瀏覽:2日期:2022-07-16 14:32:46

首先,Python 完整的異常處理語法結構如下:

try: #業務實現代碼except Exception1 as e: #異常處理塊1 ...except Exception2 as e: #異常處理塊2 ...#可以有多個 except...else: #正常處理塊finally : #資源回收塊 ...

整個異常處理結構的執行過程,如圖 1 所示。

Python異常處理機制結構實例解析

注意,在整個異常處理結構中,只有 try 塊是必需的,也就是說:

如果沒有 try 塊,則不能有后面的 except 塊、else 塊和 finally 塊。但是也不能只使用 try 塊,要么使用 try except 結構,要么使用 try finally 結構; except 塊、else 塊、finally 塊都是可選的,當然也可以同時出現; 可以有多個 except 塊,但捕獲父類異常的 except 塊應該位于捕獲子類異常的 except 塊的后面; 多個 except 塊必須位于 try 塊之后,finally 塊必須位于所有的 except 塊之后。 要使用 else 塊,其前面必須包含 try 和 except。

其中,很多初學者分不清 finally 和 else 的區別,這里著重說一下。else 語句塊只有在沒有異常發生的情況下才會執行,而 finally 語句則不管異常是否發生都會執行。不僅如此,無論是正常退出、遇到異常退出,還是通過 break、continue、return 語句退出,finally 語句塊都會執行。

注意,如果程序中運行了強制退出 Python 解釋器的語句(如 os._exit(1) ),則 finally 語句將無法得到執行。例如:

import ostry: os._exit(1)finally: print('執行finally語句')

運行程序,沒有任何輸出。因此,除非在 try 塊、except 塊中調用了退出 Python 解釋器的方法,否則不管在 try 塊、except 塊中執行怎樣的代碼,出現怎樣的情況,異常處理的 finally 塊總會被執行。

另外在通常情況下,不要在 finally 塊中使用如 return 或 raise 等導致方法中止的語句(raise 語句將在后面介紹),一旦在 finally 塊中使用了 return 或 raise 語句,將會導致 try 塊、except 塊中的 return、raise 語句失效。看如下程序:

def test(): try: # 因為finally塊中包含了return語句 # 所以下面的return語句失去作用 return True finally: return Falseprint(test())

上面程序在 finally 塊中定義了一條 return False 語句,這將導致 try 塊中的 return true 失去作用。運行上面程序,輸出結果為:

False

同樣,如果 Python 程序在執行 try 塊、except 塊包含有 return 或 raise 語句,則 Python 解釋器執行到該語句時,會先去查找 finally 塊,如果沒有 finally 塊,程序才會立即執行 return 或 raise 語句;反之,如果找到 finally 塊,系統立即開始執行 finally 塊,只有當 finally 塊執行完成后,系統才會再次跳回來執行 try 塊、except 塊里的 return 或 raise 語句。

但是,如果在 finally 塊里也使用了 return 或 raise 等導致方法中止的語句,finally 塊己經中止了方法,系統將不會跳回去執行 try 塊、except 塊里的任何代碼。

盡量避免在 finally 塊里使用 return 或 raise 等導致方法中止的語句,否則可能出現一些很奇怪的情況。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 99久久久久久久 | 成人国内精品久久久久一区 | 国产精品1区2区 | 99只有精品 | 97精品超碰一区二区三区 | 久久一日本道色综合久久 | 免费国产一区 | 国产视频1区2区 | 国产免费av网 | 欧美国产日韩精品 | 精品一级毛片 | 亚洲第一av网站 | 亚洲精品免费看 | 精品一区二区在线观看 | 亚洲视频一区 | 久久久久一区二区三区四区 | 91av免费观看| 网站黄色在线免费观看 | 最近日韩中文字幕 | 亚洲中午字幕 | 日韩中文视频 | 国产精品一区二区三 | 国产黄色在线观看 | 亚洲啊v | 一本色道精品久久一区二区三区 | 日韩精品一区在线 | 日韩在线观看视频一区 | 亚洲精品一区二区三区蜜桃久 | 色黄爽| 欧美成人二区 | 国产精品久久久久久久久久久久 | 久久久国产一区二区三区 | 日韩一区二区三区在线视频 | 日本网站免费在线观看 | 中文字幕不卡在线88 | 91麻豆精品国产91久久久久久久久 | 欧美一级久久 | 国产精品91久久久久久 | 色站综合 | 日韩视频精品在线 | 精品国产青草久久久久96 |