Поделиться через


Разрешение вопросов, связанных с исключениями: System.Runtime.InteropServices.COMException

Обновлен: Ноябрь 2007

Исключение COMException возникает при возвращении неизвестного значения HRESULT после вызова метода COM.

Полезные советы

  • Проверьте свойство ErrorCode исключения на предмет определения возвращенного COM-объектом HRESULT
    Когда среда выполнения обнаруживает неизвестный HRESULT, она вызывает исключение COMException, у которого есть открытое свойство ErrorCode, содержащее возвращенное значение HRESULT. Если среде выполнения доступно сообщение об ошибке, оно будет возвращено. Однако если сообщение об ошибке не включено разработчиком в компонент COM, среда выполнения возвращает восьмиразрядное значение HRESULT вместо строки ошибки. Наличие HRESULT позволяет вызывающему методу определить причину исключения. Дополнительные сведения см. в разделе Практическое руководство. Сопоставление значений HRESULT и исключений.

  • Отключите главный процесс.
    COM используется для связи между Visual Studio и главным процессом. Поскольку COM используется ещё перед запуском кода, вызов CoInitializeSecurity порождает это исключение.

Заметки

Среда CLR преобразует известные значения HRESULT в исключения .NET, что позволяет объектам COM возвращать управляемым клиентам полноценные сведения об ошибке. Сопоставление значения HRESULT и исключения также может действовать в обратном направлении, возвращая неуправляемым клиентам значения HRESULT.

При передаче параметров с поздней привязкой в методы объектов Microsoft Office, может быть вызвано исключение COMException, если эти объекты — COM-объекты. Поздняя привязка предполагает, что такие вызовы методов включают параметр ByRef и что передаваемое свойство имеет метод доступа Set. Если свойство его не имеет, .NET Framework создает исключение MissingMethodException (HRESULT CORE_E_MISSINGMETHOD). Для временного решения этой проблемы, используйте объекты с ранней привязкой или передавайте переменную вместо свойства объекта.

См. также

Задачи

Практическое руководство. Поиск дополнительных сведений об исключении с помощью помощника по исключениям

Основные понятия

Обработка исключений COM-взаимодействия

Ссылки

COMException