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