これは私が得たものです:
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
、次の動作を持つ1 つのパラメータを取る関数:
の場合
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)
何もしません (返さない、出力しない、何もしない)。