Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Управляемый и неуправляемый код могут работать вместе для обработки исключений. Если метод выбрасывает исключение в управляемом коде, общая среда выполнения может передать HRESULT объекту COM. Если метод завершается сбоем в неуправляемом коде, возвращая сбой HRESULT, среда выполнения создает исключение, которое может быть поймано управляемым кодом.
Среда выполнения автоматически сопоставляет HRESULT из COM-взаимодействия с более конкретными исключениями. Например, E_ACCESSDENIED становится UnauthorizedAccessException, E_OUTOFMEMORY становится OutOfMemoryExceptionи т. д.
Если HRESULT является пользовательским результатом или если оно неизвестно для среды выполнения, среда выполнения передает универсальный COMException объект клиенту. Свойство ErrorCodecomException содержит значение HRESULT.
Работа с IErrorInfo
При передаче ошибки из COM в управляемый код среда выполнения заполняет объект исключения сведениями об ошибке. COM-объекты, поддерживающие IErrorInfo и возвращающие HRESULTS, предоставляют эти сведения для исключений управляемого кода. Например, среда выполнения сопоставляет описание ошибки COM со свойством исключения Message . Если HRESULT не предоставляет дополнительных сведений об ошибке, среда выполнения заполняет многие свойства исключения значениями по умолчанию.
Если метод завершается сбоем в неуправляемом коде, исключение можно передать в сегмент управляемого кода. В разделе HRESULTS и исключения содержится таблица, показывающая, как HRESULTS сопоставляется с объектами исключений среды выполнения.