Partilhar via


Marshal.ThrowExceptionForHR Método

Definição

Aciona uma exceção com uma valor HRESULT de falha específico.

Sobrecargas

ThrowExceptionForHR(Int32)

Aciona uma exceção com uma valor HRESULT de falha específico.

ThrowExceptionForHR(Int32, IntPtr)

Gera uma exceção com uma falha específica HRESULT com base na interface IErrorInfo especificada.

ThrowExceptionForHR(Int32)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Aciona uma exceção com uma valor HRESULT de falha específico.

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

Comentários

Esse método cria um objeto de exceção para a falha especificada HRESULT. Se o HRESULT for 0 ou positivo (um código de êxito), o método retornará sem criar ou gerar uma exceção.

Observe que o ThrowExceptionForHR(Int32) método retorna uma exceção com base na interface IErrorInfo do thread atual se um estiver definido. Quando isso acontece, o errorCode parâmetro é ignorado.

Algumas HRESULTs de falha são mapeadas para exceções definidas, enquanto outras não. Se o HRESULT for mapeado para uma exceção definida, ThrowExceptionForHR criará uma instância da exceção e a lançará. Caso contrário, ele cria uma instância de COMException, inicializa o campo de código de erro com o HRESULT e gera essa exceção. Quando ThrowExceptionForHR é invocado, ele tenta recuperar informações extras sobre o erro usando a função GetErrorInfo não gerenciada.

Para obter o mapeamento de cada HRESULT para sua classe de exceção comparável no .NET Framework, consulte Como mapear HRESULTs e exceções.

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

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Confira também

Aplica-se a

ThrowExceptionForHR(Int32, IntPtr)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Gera uma exceção com uma falha específica HRESULT com base 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 ponteiro para a interface IErrorInfo que fornece mais informações sobre o erro. Você pode especificar IntPtr(0) para usar a interface IErrorInfo atual ou IntPtr(-1) para ignorar a interface IErrorInfo atual e construir a exceção com base apenas no código de erro.

Atributos

Comentários

Esse método cria um objeto de exceção para a falha especificada HRESULT. Se o HRESULT for 0 ou positivo (um código de êxito), o método retornará sem criar ou gerar uma exceção.

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

Observe que o ThrowExceptionForHR método retorna uma exceção com base na interface IErrorInfo do thread atual se um estiver definido. Quando isso acontece, o errorCode parâmetro é ignorado.

Algumas HRESULTs de falha são mapeadas para exceções definidas, enquanto outras não. Se o HRESULT for mapeado para uma exceção definida, ThrowExceptionForHR criará uma instância da exceção e a lançará. Caso contrário, ele cria uma instância de System.Runtime.InteropServices.COMException, inicializa o campo de código de erro com o HRESULT e gera essa exceção. O errorInfo parâmetro é usado para recuperar informações extras sobre o erro.

Para obter o mapeamento de cada HRESULT para sua classe de exceção comparável no .NET Framework, consulte Como mapear HRESULTs e exceções.

Confira também

Aplica-se a