久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

Python異常處理中容易犯得錯誤總結

瀏覽:3日期:2022-06-16 18:20:51
目錄Python異常處理機制容易犯的錯誤1容易犯的錯誤2總結Python異常處理機制

Python異常處理中容易犯得錯誤總結

如果try異常處理中存在finally,finally中的代碼總會得到執行

下面例子只是作為演示,不用去糾結業務邏輯

容易犯的錯誤1

看下面的代碼,寫出輸出結果

def dig_dig1(): while True:print('I’m in while loop')try: print('I’m in try') raise EOFErrorexcept IOError: print('IOEoor')finally: print('I’m in finally') breakdig_dig1()

原以為會輸出的結果:

I’m in while loopI’m in tryI’m in finallyEOFErrorProcess finished with exit code 1

運行結果

I’m in while loopI’m in tryI’m in finallyProcess finished with exit code 0 如果異常處理中存在finally, finally總會被執行; 那么在執行finally之前,try中的產生的異常將會被臨時保存起來,當finally的代碼執行完成后,再拋出異常; 但當finally中存在raise或return或break時, try中的異常將會被拋棄。容易犯的錯誤2

看下面的代碼,寫出輸出結果

def dig_dig2(index): try:print('I’m in try')if index < 0: raise IndexErrorelse: return index except IndexError:print('I’m in except')return 'except' finally:print('I’m in finally')return 'finally'print(dig_dig2(12))

原以為會輸出的結果:

I’m in try12

運行結果

I’m in tryI’m in finallyfinallyProcess finished with exit code 0 如果異常處理中存在finally, finally總會被執行。 如果在try塊語句中存在return的同時又存在finally塊語句,那么將會在執行try塊語句中return語句之前去執行finally語句塊,然后再回來執行try塊語句中return語句。 但是例子中在finally塊語句中存在return語句,整個函數已結束,所以try塊語句中return語句將永遠得不到執行。總結

一般情況下,如果異常處理中存在finally, finally總會被執行。但是,存在以下情況就需要注意:

在執行finally之前,try中的產生的異常將會被臨時保存起來,當finally的代碼執行完成后,再拋出異常; 但當finally中存在raise或return或break時, try中的異常將會被拋棄。 如果在try塊語句中存在return的同時又存在finally塊語句,那么將會在執行try塊語句中return語句之前去執行finally語句塊,然后再回來執行try塊語句中return語句。但是在finally塊語句中存在return語句,整個函數已結束,所以try塊語句中return語句將永遠得不到執行。

以上就是Python異常處理中容易犯得錯誤總結的詳細內容,更多關于python 異常處理的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 泰来县| 丹江口市| 新乡市| 房产| 石阡县| 长子县| 山东| 唐海县| 宜宾县| 平江县| 巴林右旗| 宁河县| 广饶县| 长乐市| 松潘县| 全椒县| 九龙县| 巫山县| 达尔| 隆安县| 龙山县| 夹江县| 文登市| 宁陵县| 益阳市| 化德县| 新龙县| 堆龙德庆县| 无极县| 时尚| 建宁县| 瑞金市| 延津县| 蓝田县| 罗源县| 紫阳县| 融水| 彝良县| 修水县| 姚安县| 肥西县|