Marshal.ThrowExceptionForHR Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.