Marshal.ThrowExceptionForHR Método

Definição

Lança uma exceção com um valor HRESULT específico de falha.

Sobrecargas

Name Description
ThrowExceptionForHR(Int32)

Lança uma exceção com um valor HRESULT específico de falha.

ThrowExceptionForHR(Int32, IntPtr)

Lança uma exceção com um HRESULT de falha específico, baseado na interface IErrorInfo especificada.

ThrowExceptionForHR(Int32)

Lança uma exceção com um valor HRESULT específico de falha.

public:
 static void ThrowExceptionForHR(int errorCode);
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR(int errorCode);
public static void ThrowExceptionForHR(int errorCode);
[<System.Security.SecurityCritical>]
static member ThrowExceptionForHR : int -> unit
static member ThrowExceptionForHR : int -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer)

Parâmetros

errorCode
Int32

O HRESULT correspondente à exceção desejada.

Atributos

Observações

Este método cria um objeto exceção para a falha HRESULT especificada. Se o HRESULT for 0 ou positivo (um código de sucesso), o método retorna sem criar ou lançar uma exceção.

Note que o ThrowExceptionForHR(Int32) método devolve uma exceção baseada na interface IErrorInfo do tópico atual, se uma for definida. Quando isto acontece, o errorCode parâmetro é ignorado.

Alguns HRESULTs de falha correspondem a exceções definidas, enquanto outros não. Se o HRESULT corresponde a uma exceção definida, ThrowExceptionForHR cria uma instância da exceção e lança-a. Caso contrário, cria uma instância de COMException, inicializa o campo de código de erro com o HRESULT e lança essa exceção. Quando ThrowExceptionForHR é invocado, tenta recuperar informação adicional sobre o erro usando a função não gerida GetErrorInfo .

Para o mapeamento de cada HRESULT para a sua classe de exceção comparável no .NET Framework, veja How to: Map HRESULTs and Exceptions.

Ocasionalmente, ThrowExceptionForHR pode devolver uma exceção de uma chamada COM anterior. Neste caso, pode usar a seguinte solução alternativa e passar IntPtr(-1) como segundo parâmetro (errorInfo):

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Ver também

Aplica-se a

ThrowExceptionForHR(Int32, IntPtr)

Lança uma exceção com um HRESULT de falha específico, baseado na interface IErrorInfo especificada.

public:
 static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo);
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo);
public static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo);
[<System.Security.SecurityCritical>]
static member ThrowExceptionForHR : int * nativeint -> unit
static member ThrowExceptionForHR : int * nativeint -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer, errorInfo As IntPtr)

Parâmetros

errorCode
Int32

O HRESULT correspondente à exceção desejada.

errorInfo
IntPtr

nativeint

Um apontador para a interface IErrorInfo que fornece mais informações sobre o erro. Pode especificar IntPtr(0) para usar a interface IErrorInfo atual, ou IntPtr(-1) ignorar a interface atual do IErrorInfo e construir a exceção apenas a partir do código de erro.

Atributos

Observações

Este método cria um objeto exceção para a falha HRESULT especificada. Se o HRESULT for 0 ou positivo (um código de sucesso), o método retorna sem criar ou lançar uma exceção.

O ThrowExceptionForHR método liberta o errorInfo parâmetro, diminuindo a contagem de referências COM da interface IErrorInfo .

Note que o ThrowExceptionForHR método devolve uma exceção baseada na interface IErrorInfo do tópico atual, se uma for definida. Quando isto acontece, o errorCode parâmetro é ignorado.

Alguns HRESULTs de falha correspondem a exceções definidas, enquanto outros não. Se o HRESULT corresponde a uma exceção definida, ThrowExceptionForHR cria uma instância da exceção e lança-a. Caso contrário, cria uma instância de System.Runtime.InteropServices.COMException, inicializa o campo de código de erro com o HRESULT e lança essa exceção. O errorInfo parâmetro é usado para obter informação adicional relativa ao erro.

Para o mapeamento de cada HRESULT para a sua classe de exceção comparável no .NET Framework, veja How to: Map HRESULTs and Exceptions.

Ver também

Aplica-se a