這是我得到:Exception類代碼不工作
class E2Exception(Exception):
pass
class E2OddException(E2Exception):
pass
def raiser(x):
if x == "So sue me!":
raise E2Exception
elif x != "So sue me!" and x not int:
raise ValueError
elif int(x) % 2 != 0:
raise E2OddException()
else:
return None
我們怎麼說,如果x不轉換爲一個int,這樣做呢?
而且,我得到這個錯誤:
builtins.TypeError:異常必須從BaseException
得出這是什麼意思?
說明下面
E2Exception
:一個異常類,是Exception
一個子類。
E2OddException
:一個異常類,是E2Exception
一個子類。
raiser
,即採用一個參數x
,具有以下特性的函數:
如果
x == 'So sue me!'
,然後raiser(x)
提高E2Exception
與異常 消息"New Yorker"
。如果
x != 'So sue me!'
,但x
仍然不可轉換 爲int(通過調用int(x)
),然後raiser(x)
提出了ValueError
,而不對異常消息如果
x
轉換到奇數int
任何 要求,raiser(x)
引發E2OddException
,而不會對異常消息的任何要求。否則,
raiser(x)
什麼也不做(沒有回報,沒有打印,什麼都沒有)。
您應該'raise'例外,而不是'return'他們。 –