久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

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

手機(jī)站
千鋒教育

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

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

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

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

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

python異常使用注意事項(xiàng)

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

此注意事項(xiàng)參考博文:異常機(jī)制使用細(xì)則.

1、不要太依賴異常機(jī)制

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

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

i=0

whileTrue:

print(buf[i])

i+=1except:

pass#例2:使用流程控制避免下標(biāo)訪問(wèn)異常i=0whilei

print(buf[i])

i+=1

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

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

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

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

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

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

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

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

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

以上內(nèi)容為大家介紹了python異常使用注意事項(xiàng),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/


聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(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
Python標(biāo)準(zhǔn)庫(kù)主要有哪些功能?

眾所周知,Python標(biāo)準(zhǔn)庫(kù)非常龐大,可以幫助處理各種各樣的工作,從而提高效率、節(jié)省成本。那么你對(duì)Python標(biāo)準(zhǔn)庫(kù)了解多少呢?你知道Python標(biāo)準(zhǔn)庫(kù)...詳情>>

2023-11-05 23:38:38
用Python編寫代碼時(shí)有哪些有用的技巧?

不知道吧,使用Python編寫代碼時(shí),有一些小技巧可以大幅度提升我們的工作效率和開(kāi)發(fā)效率,而且這些技巧很簡(jiǎn)單,只需要在編寫代碼時(shí)稍微注意一下...詳情>>

2023-11-05 22:48:14
python基礎(chǔ)入門之設(shè)計(jì)URL方案

DjangoURL分發(fā)系統(tǒng)使用了正則表達(dá)式配置模塊,它可以將URL字符串模式映射為Python方法views。這個(gè)系統(tǒng)允許URL與底層代碼完全脫節(jié),從而實(shí)現(xiàn)最大...詳情>>

2023-11-05 22:37:26
Python的編程語(yǔ)言

一、Python編程語(yǔ)言的優(yōu)點(diǎn)有哪些?1.Python是一種腳本語(yǔ)言,寫好了就可以直接運(yùn)行,省去了編譯鏈接的麻煩,對(duì)于需要多動(dòng)手實(shí)踐的初學(xué)者而言,也...詳情>>

2023-11-05 22:33:50
python五大異常處理機(jī)制

??我們明白了什么是異常后,那么發(fā)現(xiàn)異常后怎么處理,便是我們接下來(lái)要解決的問(wèn)題。這里將處理異常的方式總結(jié)為五種。1、默認(rèn)異常處理機(jī)制“...詳情>>

2023-11-05 22:15:50
快速通道