Share via


Marshal.ThrowExceptionForHR 方法

定義

擲回具有特定錯誤 HRESULT 值的例外狀況。

多載

ThrowExceptionForHR(Int32)

擲回具有特定錯誤 HRESULT 值的例外狀況。

ThrowExceptionForHR(Int32, IntPtr)

根據指定的 IErrorInfo 介面,擲回具有特定失敗 HRESULT 的例外狀況。

ThrowExceptionForHR(Int32)

來源:
Marshal.cs
來源:
Marshal.cs
來源:
Marshal.cs

擲回具有特定錯誤 HRESULT 值的例外狀況。

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)

參數

errorCode
Int32

對應於希望的例外狀況的 HRESULT。

屬性

備註

這個方法會為指定的失敗 HRESULT 建立例外狀況物件。 如果 HRESULT 為 0 或正數 (成功程式代碼) ,則方法會傳回,而不會建立或擲回例外狀況。

請注意,如果已設定例外狀況,方法 ThrowExceptionForHR(Int32) 會根據目前線程的 IErrorInfo 介面傳回例外狀況。 發生這種情況時, errorCode 會忽略 參數。

某些失敗 HRESULT 會對應至已定義的例外狀況,而其他則不會。 如果 HRESULT 對應至定義的例外狀況, ThrowExceptionForHR 請建立例外狀況的實例並擲回它。 否則,它會建立的 COMException實例,並使用 HRESULT 初始化錯誤碼字段,並擲回該例外狀況。 叫用 時 ThrowExceptionForHR ,它會嘗試使用 Unmanaged GetErrorInfo 函式擷取有關錯誤的額外資訊。

如需每個 HRESULT 與 .NET Framework 中可比較的例外狀況類別的對應,請參閱如何:對應 HRESULT 和例外狀況

有時候, ThrowExceptionForHR 可能會從先前的 COM 呼叫傳回例外狀況。 在此情況下,您可以使用下列因應措施,並將 作為第二個參數傳遞 IntPtr(-1) (errorInfo) :

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

另請參閱

適用於

ThrowExceptionForHR(Int32, IntPtr)

來源:
Marshal.cs
來源:
Marshal.cs
來源:
Marshal.cs

根據指定的 IErrorInfo 介面,擲回具有特定失敗 HRESULT 的例外狀況。

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)

參數

errorCode
Int32

對應於希望的例外狀況的 HRESULT。

errorInfo
IntPtr

nativeint

提供錯誤詳細資訊之 IErrorInfo 介面的指標。 您可以指定 IntPtr(0) 以使用目前的 IErrorInfo 介面,或指定 IntPtr(-1) 忽略目前的 IErrorInfo 介面,並且只從錯誤碼建構例外狀況。

屬性

備註

這個方法會為指定的失敗 HRESULT 建立例外狀況物件。 如果 HRESULT 為 0 或正數 (成功程式代碼) ,則方法會傳回,而不會建立或擲回例外狀況。

方法 ThrowExceptionForHR 會釋放 errorInfo 參數,減少 IErrorInfo 介面的 COM 參考計數。

請注意,如果已設定例外狀況,方法 ThrowExceptionForHR 會根據目前線程的 IErrorInfo 介面傳回例外狀況。 發生這種情況時, errorCode 會忽略 參數。

某些失敗 HRESULT 會對應至已定義的例外狀況,而其他則不會。 如果 HRESULT 對應至定義的例外狀況, ThrowExceptionForHR 請建立例外狀況的實例並擲回它。 否則,它會建立的 System.Runtime.InteropServices.COMException實例,並使用 HRESULT 初始化錯誤碼字段,並擲回該例外狀況。 參數 errorInfo 可用來擷取有關錯誤的額外資訊。

如需每個 HRESULT 與 .NET Framework 中可比較的例外狀況類別的對應,請參閱如何:對應 HRESULT 和例外狀況

另請參閱

適用於