0

これは私が得たものです:

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

raiserx、次の動作を持つ1 つのパラメータを取る関数:

  • の場合x == 'So sue me!'raiser(x)例外E2Exceptionメッセージで発生します"New Yorker"

  • x != 'So sue me!'が、xまだ int に変換できない場合( を呼び出してint(x))、例外メッセージを必要とraiser(x)ValueErrorずに を発生させます。

  • x奇数intraiser(x)変換 された場合E2OddException、例外メッセージの要件なしで が発生します。

  • それ以外の場合は、raiser(x)何もしません (返さない、出力しない、何もしない)。

4

2 に答える 2