| Предыдущий | Следующий |
| DISP_E_NOTACOLLECTION | DISP_E_BUFFERTOOSMALL |
DISP_E_DIVBYZERO
Что означает DISP_E_DIVBYZERO
DISP_E_DIVBYZERO (0x80020012) — Automation-выражение или вызываемый компонент попытался выполнить деление на ноль.
COM Automation позволяет вызывать свойства и методы через IDispatch без жёсткой привязки к vtable-интерфейсу: имя преобразуется в DISPID, а Invoke получает аргументы как VARIANT/DISPPARAMS. Поэтому для DISP_E_* особенно важны конкретный член, DISPID и фактические типы аргументов.
Что проверить
- Сохраните входные numeric VARIANT и член/выражение, где вычислялся делитель.
- Проверьте coercion: строка, Currency, Decimal или другой тип мог преобразоваться в ноль уже внутри Automation.
- Отделите ошибку самого COM-server от вычисления в script/expression engine, если между ними есть несколько уровней.
Что делать
Исправьте данные или вычисление, чтобы делитель не был нулём после фактического преобразования типов. Повтор с теми же значениями ничего не меняет.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.