Share via


Marshal.GetHRForException(Exception) Método

Definição

Converte a exceção especificada para um HRESULT.

public:
 static int GetHRForException(Exception ^ e);
[System.Security.SecurityCritical]
public static int GetHRForException (Exception e);
public static int GetHRForException (Exception? e);
public static int GetHRForException (Exception e);
[<System.Security.SecurityCritical>]
static member GetHRForException : Exception -> int
static member GetHRForException : Exception -> int
Public Shared Function GetHRForException (e As Exception) As Integer

Parâmetros

e
Exception

A exceção que será convertida em um HRESULT.

Retornos

O HRESULT mapeado para a exceção fornecida.

Atributos

Comentários

GetHRForException também configura uma interface IErrorInfo para a exceção que pode ser obtida chamando a função COM GetErrorInfoNEEDGUID. Você pode usar essa função para retornar um valor HRESULT em uma implementação de classe gerenciada de uma interface COM em que você aplica o PreserveSigAttribute atributo . Fazer com que o método atribuído capture todas as exceções e use o GetHRForException método para retornar o valor HRESULT apropriado. Permitir que uma exceção se propague fora do método produz um comportamento incorreto. (Na verdade, o Common Language Runtime falha ao passar uma exceção para um cliente COM que chama esse método por meio de uma v-table.)

Observe que o GetHRForException método define a interface IErrorInfo do thread atual. Isso pode causar resultados inesperados para métodos como os ThrowExceptionForHR métodos que usam o IErrorInfo do thread atual, se ele estiver definido.

Aplica-se a

Confira também