все Python 3Исключенияисключение
decimal.DivisionUndefined
модульные исключения
Деление 0/0 в decimal (результат не определён).
Синтаксис
raise decimal.DivisionUndefined
Срабатывает именно на 0/0 — деление ненулевого числа на ноль даёт другой сигнал, DivisionByZero. Хотя класс наследует и InvalidOperation, и ZeroDivisionError, в except прилетает не он, а InvalidOperation: DivisionUndefined — лишь имя условия. Поэтому ни except ZeroDivisionError, ни except decimal.DivisionUndefined деление 0/0 не поймают — пишите except decimal.InvalidOperation. Ловушка InvalidOperation включена по умолчанию; если её снять, операция молча вернёт NaN.
Примеры
import decimal
try:
raise decimal.DivisionUndefined
except decimal.DivisionUndefined as e:
print(type(e).__name__) # → DivisionUndefined
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности