COMException Класс

Определение

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

public ref class COMException : Exception
public ref class COMException : System::Runtime::InteropServices::ExternalException
public class COMException : Exception
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
    inherit Exception
type COMException = class
    inherit ExternalException
[<System.Serializable>]
type COMException = class
    inherit ExternalException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type COMException = class
    inherit ExternalException
Public Class COMException
Inherits Exception
Public Class COMException
Inherits ExternalException
Наследование
COMException
Наследование
Производный
Атрибуты

Комментарии

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

Когда среда выполнения встречает незнакомое значение HRESULT (HRESULT, в котором отсутствует конкретное соответствующее исключение), он создает экземпляр COMException класса. Это исключение для всех целей предоставляет те же члены, что и любое исключение, и наследует открытое ErrorCode свойство, содержащее значение HRESULT, возвращенное вызываемым объектом. если сообщение об ошибке доступно среде выполнения (получено от интерфейса IErrorInfo или Err объекта в Visual Basic или в некоторых случаях от операционной системы), сообщение возвращается вызывающему. Однако если сообщение об ошибке не включено разработчиком в компонент COM, среда выполнения возвращает восьмиразрядное значение HRESULT вместо строки ошибки. Наличие HRESULT позволяет вызывающему объекту определить причину универсального исключения.

Обработка исключения COMException

Ниже приведены некоторые рекомендации по устранению COMException исключений.

Проверьте ErrorCode свойство
Когда среда выполнения встречает незнакомое значение HRESULT и создает COMException исключение, ErrorCode свойство включает либо сообщение об ошибке, либо, если сообщение об ошибке недоступно, 8-значное значение HRESULT. Сообщение об ошибке или значение HRESULT могут помочь определить причину исключения.

Список значений HRESULT см. в разделе Общие значения HRESULT.

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

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

в некоторых случаях запуск Visual Studio от имени администратора может устранить проблему. Также можно Отключить ведущий процесс.

Создание исключения COMException

несмотря на то, что COMException класс можно использовать для возврата конкретных значений hresult для неуправляемых клиентов, создание определенного платформа .NET Framework исключения лучше, чем использование универсального исключения. учтите, что управляемые клиенты, а также неуправляемые клиенты могут использовать объект платформа .NET Framework, и создание HRESULT для управляемого вызывающего объекта менее понятными, чем создание исключения.

Конструкторы

COMException()

Инициализирует новый экземпляр класса COMException со значениями по умолчанию.

COMException(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса COMException, используя данные сериализации.

COMException(String)

Инициализирует новый экземпляр класса COMException с заданным сообщением.

COMException(String, Exception)

Инициализирует новый экземпляр класса COMException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение.

COMException(String, Int32)

Инициализирует новый экземпляр класса COMException, используя заданное сообщение и код ошибки.

Свойства

Data

Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении.

(Унаследовано от Exception)
ErrorCode

Возвращает HRESULT ошибки.

(Унаследовано от ExternalException)
HelpLink

Получает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению.

(Унаследовано от Exception)
InnerException

Возвращает экземпляр класса Exception, который вызвал текущее исключение.

(Унаследовано от Exception)
Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)
Source

Возвращает или задает имя приложения или объекта, вызывавшего ошибку.

(Унаследовано от Exception)
StackTrace

Получает строковое представление непосредственных кадров в стеке вызова.

(Унаследовано от Exception)
TargetSite

Возвращает метод, создавший текущее исключение.

(Унаследовано от Exception)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

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

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении.

(Унаследовано от Exception)
GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Преобразует содержимое исключения в строку.

ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)

События

SerializeObjectState
Является устаревшей.

Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к

См. также раздел