你可以用raise語句來引發乙個異常。異常/錯誤物件必須有乙個名字,且它們應是error或exception類的子類
下面是乙個引發異常的例子:
class
shortinputexception
(exception)
:'''自定義的異常類'''
def__init__
(self, length, atleast)
:#super().__init__()
self.length = length
self.atleast = atleast
defmain()
:try
: s =
input
('請輸入 --> ')if
len(s)
<3:
# raise引發乙個你定義的異常
raise shortinputexception(
len(s),3
)except shortinputexception as result:
#x這個變數被繫結到了錯誤的例項
print
('shortinputexception: 輸入的長度是 %d,長度至少應是 %d'
%(result.length, result.atleast)
)else
:print
('沒有異常發生.'
)main(
)
執行結果如下:
注意:以上程式中,關於**#super().__init__()
的說明
這一行**,可以呼叫也可以不呼叫,建議呼叫,因為__init__方法往往是用來對建立完的物件進行初始化工作,如果在子類中重寫了父類的__init__方法,即意味著父類中的很多初始化工作沒有做,這樣就不保證程式的穩定了,所以在以後的開發中,如果重寫了父類的__init__方法,最好是先呼叫父類的這個方法,然後再新增自己的功能。
python自定義異常
1 可以通過建立乙個新的exception類來擁有自己的異常。異常應該繼承自 exception 類,或者直接繼承,或者間接繼承。raise nameerror hithere traceback most recent call last file line 1,in module raise n...
python 自定義異常
try print num 直譯器執行 時,一旦發現錯誤,會根據錯誤型別自動建立乙個異常物件並且傳遞該異常物件 手動建立異常物件並且傳遞 丟擲 raise nameerror num未命名 except nameerror as error as error 就是將 捕獲到的異常物件 賦值給 err...
Python 自定義異常
這個自定義異常的案例裡面,有個關鍵字沒有做解釋。果斷google一下,raise的意思是丟擲指定的異常。其他的倒沒什麼,不過這種指定異常應該挺特殊的,但是沒有想到該在什麼場景使用。usr bin python coding gbk 自定義乙個異常 class shortinputexception ...