Python Glossary English

все 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Сообщить о неточности