錯(cuò)誤異常類型:
1、NameError :嘗試訪問(wèn)一個(gè)沒(méi)有申明的變量
2臭胜、ZeroDivisionError:除數(shù)為0
3离赫、SyntaxError:語(yǔ)法錯(cuò)誤
4、IndexError:索引超出序列范圍
5荡灾、KeyError:請(qǐng)求一個(gè)不存在的字典關(guān)鍵字
6、IOError:輸入輸出錯(cuò)誤(比如你要讀的文件不存在)
7瞬铸、AttributeError:嘗試訪問(wèn)未知的對(duì)象屬性
8批幌、ValueError:傳給函數(shù)的參數(shù)類型不正確,比如給int()函數(shù)傳入字符串形
異常捕獲嗓节、處理:
1荧缘、try...except...語(yǔ)句:首先,執(zhí)行try子句(在關(guān)鍵字try和關(guān)鍵字except之間的語(yǔ)句)拦宣;如果沒(méi)有異常發(fā)生截粗,忽略except子句,try子句執(zhí)行后結(jié)束鸵隧;如果在執(zhí)行try子句的過(guò)程中發(fā)生了異常绸罗,那么try子句余下的部分將被忽略。如果異常的類型和 except 之后的名稱相符豆瘫,那么對(duì)應(yīng)的except子句將被執(zhí)行珊蟀。最后執(zhí)行 try 語(yǔ)句之后的代碼;如果一個(gè)異常沒(méi)有與任何的except匹配外驱,那么這個(gè)異常將會(huì)傳遞給上層的try中
2育灸、try ... except...else語(yǔ)句:當(dāng)沒(méi)有檢測(cè)到異常的時(shí)候,則執(zhí)行else語(yǔ)句
3略步、try ... except...else...finally:無(wú)論是否檢測(cè)到異常描扯,都會(huì)執(zhí)行finally的一段代碼
assert&raise:
1、斷言(assert):語(yǔ)法--assert expression[,reason]趟薄,執(zhí)行該語(yǔ)句的時(shí)候绽诚,先判斷表達(dá)式expression,如果表達(dá)式為真杭煎,則什么都不做恩够;如果表達(dá)式不為真,則拋出異常
2羡铲、拋出異常(raise):語(yǔ)法--raise [SomeException [, args [,traceback]]蜂桶,第一個(gè)參數(shù),SomeException必須是一個(gè)異常類也切,或異常類的實(shí)例扑媚;第二個(gè)參數(shù)是傳遞給SomeException的參數(shù)腰湾,必須是一個(gè)元組;第三個(gè)參數(shù)traceback很少用疆股,主要是用來(lái)提供一個(gè)跟中記錄對(duì)象(traceback)