python報的錯誤怎么處理
在編寫Python代碼或開發(fā)實際應用的項目時,程序報出異;蝈e誤是在所難免的,那么我們應該怎樣處理這些異常呢?下面來說一下方法。
1.使用try...except捕捉異常
#FormatTableID_0# #FormatTableID_1#或
#FormatTableID_2# #FormatTableID_3#2.使用try ...except...else語句捕捉異常
當try塊中的代碼沒有異常時,則跳過except塊中的代碼,執(zhí)行else塊中的代碼
工作原理:
1).如果try代碼塊語句執(zhí)行發(fā)生異常,Python就跳回try,執(zhí)行第一個匹配該異常的except塊中的代碼
2).如果異常發(fā)生在try代碼塊內,沒有匹配的except子句,name異常就會向上傳遞到程序中之前進入的try中,或者轉到這個進程的頂層(這會使python終止當前程序并打印默認的錯誤消息)
3).如果try塊中的代碼執(zhí)行沒有異常發(fā)生,則python將執(zhí)行else塊中的代碼
3.使用try...finally捕捉異常
當try塊中包含了finally語句,則python一定會在執(zhí)行完try塊中的代碼之后在執(zhí)行finally塊中的代碼(無論try塊中的代碼是否發(fā)生異常都將執(zhí)行finally塊中的代碼)
工作原理:
1).如果執(zhí)行try塊中的代碼時沒有發(fā)生異常,則Python會跳轉至finally語句并執(zhí)行該代碼塊,然后繼續(xù)執(zhí)行程序中finally語句之后的代碼
2).如果執(zhí)行try塊中的代碼時發(fā)生異常,則Python依然會執(zhí)行finally語句中的代碼塊,但是接著會將異常向上傳遞到上層的try語句或頂層的默認處理器,程序不會繼續(xù)執(zhí)行導致發(fā)生異常的語句之后的try塊中的代碼。也就是說,即使發(fā)生了異常,finally代碼塊還是會被執(zhí)行,和except不同的是,finally不會終止異常,而是在finally代碼塊執(zhí)行后,一直處于發(fā)生狀態(tài)
4.使用raise拋出異常(手工引發(fā)異常)
raise<異常對象>
‘異常對象’表示將引發(fā)異常的異常名稱,且異常名稱標識了具體的異常類。raise語句還可指定對異常對象進行初始化的參數(shù),為此需要在異常類的名稱后添加一個逗號以及指定參數(shù)(或者由參數(shù)構成的一個元組 )。一旦執(zhí)行了raise語句,raise語句后的代碼將不能被執(zhí)行
raise<異常對象>,<異常信息標識>
例子:
#FormatTableID_4# #FormatTableID_5#5.自定義異常
格式class MyError(Exception):
#FormatTableID_6# #FormatTableID_7#6.使用assert語句
用于檢測某個條件表達式是否為真。又稱斷言語句,即assert認為檢測的表達式永遠為真,斷言失敗就會引發(fā)AssertionError異常
語法格式:assert<條件判斷表達式>
#FormatTableID_8#username = 'admin'
password='123456'
assert username =='admin' and password == 'admin','密碼錯誤!'
初級會計職稱中級會計職稱經濟師注冊會計師證券從業(yè)銀行從業(yè)會計實操統(tǒng)計師審計師高級會計師基金從業(yè)資格稅務師資產評估師國際內審師ACCA/CAT價格鑒證師統(tǒng)計資格從業(yè)
一級建造師二級建造師消防工程師造價工程師土建職稱房地產經紀人公路檢測工程師建筑八大員注冊建筑師二級造價師監(jiān)理工程師咨詢工程師房地產估價師 城鄉(xiāng)規(guī)劃師結構工程師巖土工程師安全工程師設備監(jiān)理師環(huán)境影響評價土地登記代理公路造價師公路監(jiān)理師化工工程師暖通工程師給排水工程師計量工程師
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級職稱護士資格證初級護師主管護師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實踐技能內科主治醫(yī)師外科主治醫(yī)師中醫(yī)內科主治兒科主治醫(yī)師婦產科醫(yī)師西藥士/師中藥士/師臨床檢驗技師臨床醫(yī)學理論中醫(yī)理論