Это то, что я получил:Исключения коды класса не работают
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
Как мы говорим, если й не раскладываются в междунар, сделать это?
Кроме того, я получаю эту ошибку:
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' их. –