版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《Python開(kāi)發(fā)技術(shù)應(yīng)用》62其他異常相關(guān)功能處理所有異常except語(yǔ)句有一個(gè)原則是:如果指明了處理一個(gè)異常類型,則該類型的所有派生類(包括多代的子孫類)都會(huì)被捕獲??梢栽谠O(shè)計(jì)異常處理器的時(shí)候,指定一個(gè)較高輩分的異常類型,從而實(shí)現(xiàn)更大范圍的異常處理。例如可以使用Exception來(lái)捕獲所有異常。捕獲所有異常的做法應(yīng)該謹(jǐn)慎使用,它會(huì)隱藏?zé)o關(guān)的錯(cuò)誤,讓程序難以調(diào)試。處理所有異常處理所有異常defsafe_open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None):try:f=open(file,mode,buffering,encoding,errors,newline,closefd,opener)except(FileNotFoundError,FileExistsError,PermissionError)ase:print(e)else:returnff3=safe_open('C:\\pagefile.sys')f1=safe_open('C:\\123.txt')f2=safe_open('D:\\123.txt','x')defsafe_open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None):try:f=open(file,mode,buffering,encoding,errors,newline,closefd,opener)exceptExceptionase:print(e)else:returnff3=safe_open('C:\\pagefile.sys')f1=safe_open('C:\\123.txt')f2=safe_open('D:\\123.txt','x')【例】:修改封裝open函數(shù)中的異常處理器,用Exception代替多個(gè)具體的異常類型。斷言斷言,通俗的講就是下判斷??梢岳脭嘌栽诔绦蛑胁迦胝{(diào)試性語(yǔ)句,使用關(guān)鍵字assert實(shí)現(xiàn):>>>assertFalseTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>AssertionError斷言上面的代碼等價(jià)于:ifFalse:raiseAssertionError從根本上來(lái)說(shuō),Python的斷言語(yǔ)句是一種調(diào)試工具,用來(lái)測(cè)試某個(gè)斷言條件。如果斷言條件為真,則程序?qū)⒗^續(xù)正常執(zhí)行;但如果條件為假,則會(huì)引發(fā)AssertionError異常并顯示相關(guān)的錯(cuò)誤消息。實(shí)例講解【例】:在某電商平臺(tái)上,使用字典來(lái)存儲(chǔ)商品信息:defdiscount(product,rate):price=int(product['price']*(1.0-rate))assert0<price<=product['price']returnprice其中的assert語(yǔ)句,能確保在任何情況下,折后價(jià)不低于0,也不會(huì)高于產(chǎn)品原價(jià)。p1={'id':148,'name':'紅米手機(jī)','price':1950}p2={'id':282,'name':'海爾冰箱','price':5300}p3={'id':796,'name':'威化餅干','price':25}為了添加打折優(yōu)惠券的功能,提供了下面這個(gè)discount函數(shù):print(f"{p1['name']}折后價(jià)格為{discount(p1,0.85)}")print(f"{p2['name']}折后價(jià)格為{discount(p2,1.2)}")實(shí)例講解p1={'id':148,'name':'紅米手機(jī)','price':1950}p2={'id':282,'name':'海爾冰箱','price':5300}p3={'id':796,'name':'威化餅干','price':25}defdiscount(product,rate):price=int(product['price']*(1.0-rate))assert0<price<=product['price']returnpriceprint(f"{p1['name']}折后價(jià)格為{discount(p1,0.85)}")print(f"{p2['name']}折后價(jià)格為{discount(p2,1.2)}")執(zhí)行結(jié)果:Traceback(mostrecentcalllast):File"E:\!Work\Codes\062Bassertion.py",line9,in<module>print(f"{p2['name']}折后價(jià)格為{discount(p2,1.2)}")File"E:\!Work\Codes\062Bassertion.py",line6,indiscountassert0<price<=product['price']AssertionError紅米手機(jī)折后價(jià)格為292使用了斷言語(yǔ)句之后,在軟件測(cè)試時(shí)遇到這些錯(cuò)誤,查看異?;厮菥涂梢暂p松地了解是哪里出了問(wèn)題,極大地加快了調(diào)試速度,提高了程序的可維護(hù)性。更詳細(xì)的關(guān)于異常的信息sys模塊中的exc_info()函數(shù)可以提供最近一次異常的相關(guān)信息。它返回一個(gè)包含了3個(gè)元素的元組,比單純使用except–as語(yǔ)句獲得的信息更多。123456importsystry:float('abc123')exceptException:exc_tuple=sys.exc_info()print(exc_tuple)執(zhí)行結(jié)果:
(<class'ValueError'>,ValueError("couldnotconvertstringtofloat:'abc123'"),<tracebackobjectat0x0000022054A37040>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年湖南民族職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)參考答案詳解
- 2026年廣東茂名幼兒師范??茖W(xué)校單招職業(yè)適應(yīng)性考試題庫(kù)及答案詳解一套
- 2026年朔州師范高等??茖W(xué)校單招職業(yè)技能考試題庫(kù)含答案詳解
- 2026年錦州師范高等專科學(xué)校單招職業(yè)適應(yīng)性考試題庫(kù)及參考答案詳解1套
- 2026年湖北職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)及參考答案詳解
- 2026年棗莊職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案詳解
- 2026年山西省財(cái)政稅務(wù)??茖W(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案詳解
- 2026年福州科技職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及答案詳解一套
- 2026年臨汾職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)參考答案詳解
- 2026年哈爾濱鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)參考答案詳解
- GB/T 14975-2025結(jié)構(gòu)用不銹鋼無(wú)縫鋼管
- 2025首屆電力低空經(jīng)濟(jì)發(fā)展大會(huì):電力場(chǎng)景具身智能檢修機(jī)器人技術(shù)及應(yīng)用
- 冬季污水廠防凍知識(shí)培訓(xùn)
- 2025年度鋼管支架貝雷梁拆除施工方案
- 2025版吊裝費(fèi)合同范本
- 心理因素對(duì)創(chuàng)新行為的影響
- 脊髓損傷的膀胱護(hù)理
- 《醫(yī)學(xué)影像診斷報(bào)告書寫指南》(2025版)
- 高校物業(yè)安全培訓(xùn)內(nèi)容課件
- (正式版)DB33∕T 1430-2025 《海塘安全監(jiān)測(cè)技術(shù)規(guī)程》
- 信息技術(shù)產(chǎn)品供貨保障措施及質(zhì)量保證計(jì)劃
評(píng)論
0/150
提交評(píng)論