Python Glossary English

все Python 3Исключенияисключение

decimal.DivisionImpossible

модульные исключения

Целочисленное деление decimal не может дать корректный результат.

Синтаксис

raise decimal.DivisionImpossible

Речь не про обычное деление, а про целочисленное: сигнал возникает, когда целая часть результата // или divmod требует больше цифр, чем precision текущего контекста. Это подкласс InvalidOperation, ловушка которого в контексте по умолчанию включена, поэтому исключение действительно вылетает — но это InvalidOperation, а не DivisionImpossible, и except decimal.DivisionImpossible его не поймает; ловите decimal.InvalidOperation. Со снятой ловушкой вместо исключения вернётся NaN. Чинится увеличением precision, а не перехватом.

Примеры

import decimal
try:
    raise decimal.DivisionImpossible
except decimal.DivisionImpossible as e:
    print(type(e).__name__)   # → DivisionImpossible

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности