Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O código gerenciado e não gerenciado pode funcionar em conjunto para lidar com exceções. Se um método gerar uma exceção no código gerenciado, o common language runtime poderá passar um HRESULT para um objeto COM. Se um método falhar no código não gerenciado retornando uma falha HRESULT, o runtime gerará uma exceção que pode ser capturada pelo código gerenciado.
O runtime mapeia automaticamente o HRESULT da interoperabilidade COM para exceções mais específicas. Por exemplo, E_ACCESSDENIED se torna UnauthorizedAccessException, E_OUTOFMEMORY se torna OutOfMemoryExceptione assim por diante.
Se o HRESULT for um resultado personalizado ou desconhecido para o tempo de execução, o tempo de execução passa um valor genérico COMException para o cliente. A propriedade ErrorCode da COMException contém o valor HRESULT.
Trabalhando com IErrorInfo
Quando um erro é passado de COM para código gerenciado, o runtime preenche o objeto de exceção com informações de erro. Objetos COM que dão suporte a IErrorInfo e retornam HRESULTS fornecem essas informações para exceções de código gerenciado. Por exemplo, o runtime associa a descrição do erro COM à propriedade da exceção Message. Se o HRESULT não fornecer informações de erro adicionais, o runtime preencherá muitas das propriedades da exceção com valores padrão.
Se um método falhar no código não gerenciado, uma exceção poderá ser passada para um segmento de código gerenciado. O tópico HRESULTS e Exceções contém uma tabela que mostra como os HRESULTS são mapeados para objetos de exceção em tempo de execução.