Что означает код HRESULT 0x80020012 (DISP_E_DIVBYZERO)?

 
Предыдущий Следующий
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, если между ними есть несколько уровней.

Что делать

Исправьте данные или вычисление, чтобы делитель не был нулём после фактического преобразования типов. Повтор с теми же значениями ничего не меняет.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.