python異常處理、自定義異常、斷言原理與用法分析
本文實(shí)例講述了python異常處理、自定義異常、斷言原理與用法。分享給大家供大家參考,具體如下:
什么是異常: 當(dāng)程序遭遇某些非正常問題的時(shí)候就會(huì)拋出異常:比如int()只能處理能轉(zhuǎn)化成int的對(duì)象,如果傳入一個(gè)不能轉(zhuǎn)化的對(duì)象就會(huì)報(bào)錯(cuò)并拋出異常
ValueError :傳入無效的錯(cuò)誤的參數(shù)
TypeError:進(jìn)行了對(duì)類型無效的操作
IndexError:序列中沒有此索引
NameError:使用未定義的變量
更多更具體的異常可以參考Python官方文檔,讀讀官方文檔更健康
try: s=input('請(qǐng)輸入要int的字符串:') i=int(s)except ValueError as e: print(e)else: print('這里是當(dāng)沒有發(fā)生異常時(shí)的操作')finally: print('這里是即使發(fā)生異常也會(huì)執(zhí)行的代碼')'''第一次運(yùn)行結(jié)果:請(qǐng)輸入要int的字符串:123這里是當(dāng)沒有發(fā)生異常時(shí)的操作這里是即使發(fā)生異常也會(huì)執(zhí)行的代碼''''''第二次運(yùn)行結(jié)果請(qǐng)輸入要int的字符串:abcinvalid literal for int() with base 10: ’abc’這里是即使發(fā)生異常也會(huì)執(zhí)行的代碼''' except可以在一條except里捕獲多個(gè)異常,但需要用括號(hào)包裹多個(gè)異常,并且即使同時(shí)捕獲多個(gè)異常,由于異常會(huì)導(dǎo)致程序發(fā)生終止,所以只會(huì)捕獲到一個(gè)異常,所以只需要一個(gè)獲取異常返回對(duì)象的變量: 如果不確定捕獲什么異常,可以使用異常的基類Exception【更高級(jí)的可以使用BaseException】,并且最好把Exception放在所有except的最后:
自定義異常: 使用raise可以拋出自定義的異常信息
只要繼承了Exception,就可以定義自己的異常類:
class myException(Exception): def __init__(self,msg): self.message=msg def __str__(self):###這里就是異常的字符串信息 return self.messagetry : raise myException('我的異常')#py3except myException as e: print(e) '''結(jié)果:我的異常'''斷言: 意義:與其讓程序在運(yùn)行最崩潰,不如在出現(xiàn)錯(cuò)誤條件時(shí)就崩潰【比如說,老司機(jī)想要開車,隨便開車風(fēng)險(xiǎn)很大的,使用斷言就好像先判斷路況如何,然后再開車,而不是說開車出去才發(fā)現(xiàn)交警大隊(duì)在等待】
police=Falseassert police ==Falseprint('老司機(jī)開車?yán)玻瑔鑶鑶?)
police=Trueassert police ==Falseprint('老司機(jī)開車?yán)玻瑔鑶鑶?)#報(bào)錯(cuò),AssertionError
更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python入門與進(jìn)階經(jīng)典教程》、《Python字符串操作技巧匯總》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. javascript實(shí)現(xiàn)移動(dòng)端 HTML5 圖片上傳預(yù)覽和壓縮功能示例2. 如何對(duì)php程序中的常見漏洞進(jìn)行攻擊3. 深入淺出JavaScript前端中的設(shè)計(jì)模式4. 程序猿說love的100種語言5. Django開發(fā)RESTful API實(shí)現(xiàn)增刪改查(入門級(jí))6. 基于Idea+Jconsole實(shí)現(xiàn)線程監(jiān)控步驟7. jsp 使用request為頁面添加靜態(tài)數(shù)據(jù)的實(shí)例8. HTML-Canvas的優(yōu)越性能以及實(shí)際應(yīng)用9. 初試WAP之wml+ASP查詢10. JSP頁面跳轉(zhuǎn)方法大全
