国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python異常使用注意事項

python異常使用注意事項

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-05 22:12:14 1699193534

此注意事項參考博文:異常機制使用細則.

1、不要太依賴異常機制

python的異常機制非常方便,對于信息的傳遞中十分好用(這里信息的傳遞主要有三種,參數(shù)傳遞,全局變量傳遞,以及異常機制傳遞),但濫用異常機制也會帶來一些負面影響。過度使用異常主要表現(xiàn)在兩個方面:①把異常和普通錯誤混淆在一起,不再編寫任何錯誤處理代碼,而是以簡單地引發(fā)異常來代苦所有的錯誤處理。②使用異常處理來代替流程控制。例子如下:

buf="hello"#例1:使用異常處理來遍歷arr數(shù)組的每個元素try:

i=0

whileTrue:

print(buf[i])

i+=1except:

pass#例2:使用流程控制避免下標訪問異常i=0whilei

print(buf[i])

i+=1

例1中假如循環(huán)過度便會下標訪問異常,這時候把錯誤拋出,再進行一系列處理,顯然是不可取的,因為異常機制的效率比正常的流程控制效率差,顯然例2中簡單的業(yè)務(wù)流程就可以避開這種錯誤。所以不要熟悉了異常的使用方法后,遇到這種簡單邏輯,便不管三七二十一引發(fā)異常后再進行解決。對于完全己知的錯誤和普通的錯誤,應(yīng)該編寫處理這種錯誤的代碼,增加程序的健壯性。只有對于外部的、不能確定和預(yù)知的運行時錯誤才使用異常。

2、不要在try塊中引入太多的代碼

在try塊里放置大量的代碼,這看上去很“簡單”,代碼框架很容易理解,但因為try塊里的代碼過于龐大,業(yè)務(wù)過于復(fù)雜,就會造成try塊中出現(xiàn)異常的可能性大大增加,從而導(dǎo)致分析異常原因的難度也大大增加。

而且當(dāng)塊過于龐大時,就難免在try塊后緊跟大量的except塊才可以針對不同的異常提供不同的處理邏輯。在同一個try塊后緊跟大量的except塊則需要分析它們之間的邏輯關(guān)系,反而增加了編程復(fù)雜度。所以,可以把大塊的try塊分割成多個小塊,然后分別捕獲并處理異常。

3、不要忽略捕獲到的異常

不要忽略異常!既然己捕獲到異常,那么except塊理應(yīng)做些有用的事情,及處理并修復(fù)異常。except塊整個為空,或者僅僅打印簡單的異常信息都是不妥的!具體的處理方式為:

①處理異常。對異常進行合適的修復(fù),然后繞過異常發(fā)生的地方繼續(xù)運行;或者用別的數(shù)據(jù)進行計算,以代替期望的方法返回值;或者提示用戶重新操作,總之,程序應(yīng)該盡量修復(fù)異常,使程序能恢復(fù)運行。

②重新引發(fā)新異常。把在當(dāng)前運行環(huán)境下能做的事情盡量做完,然后進行異常轉(zhuǎn)譯,把異常包裝成當(dāng)前層的異常,重新傳給上層調(diào)用者。

③在合適的層處理異常。如果當(dāng)前層不清楚如何處理異常,就不要在當(dāng)前層使用except語句來捕獲該異常,讓上層調(diào)用者來負責(zé)處理該異常。

以上內(nèi)容為大家介紹了python異常使用注意事項,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。http://www.kei0345678.cn/


聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT