上一篇文章為:→3.8.7異常的傳遞
拋出自定義的異常
你可以用raise語(yǔ)句來(lái)引發(fā)一個(gè)異常最爬。異常/錯(cuò)誤對(duì)象必須有一個(gè)名字铃岔,且它們應(yīng)是Error或Exception類的子類
下面是一個(gè)引發(fā)異常的例子:
class ShortInputException(Exception):
'''自定義的異常類'''
def __init__(self, length, atleast):
#super().__init__()
self.length = length
self.atleast = atleast
def main():
try:
s = input('請(qǐng)輸入 --> ')
if len(s) < 3:
# raise引發(fā)一個(gè)你定義的異常
raise ShortInputException(len(s), 3)
except ShortInputException as result:#x這個(gè)變量被綁定到了錯(cuò)誤的實(shí)例
print('ShortInputException: 輸入的長(zhǎng)度是 %d,長(zhǎng)度至少應(yīng)是 %d'% (result.length, result.atleast))
else:
print('沒(méi)有異常發(fā)生.')
main()
運(yùn)行結(jié)果如下:
day08_python面向?qū)ο?3異常模塊-01.png
注意
-
以上程序中汪疮,關(guān)于代碼
#super().__init__()
的說(shuō)明這一行代碼,可以調(diào)用也可以不調(diào)用毁习,建議調(diào)用智嚷,因?yàn)?code>__init__方法往往是用來(lái)對(duì)創(chuàng)建完的對(duì)象進(jìn)行初始化工作,如果在子類中重寫了父類的
__init__
方法纺且,即意味著父類中的很多初始化工作沒(méi)有做盏道,這樣就不保證程序的穩(wěn)定了,所以在以后的開發(fā)中载碌,如果重寫了父類的__init__
方法猜嘱,最好是先調(diào)用父類的這個(gè)方法,然后再添加自己的功能