次の方法で共有


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 呼び出されると、アンマネージ GetErrorInfo 関数を使用して、エラーに関する追加情報の取得が試行されます。

各 HRESULT から .NET Framework の同等の例外クラスへのマッピングについては、「 方法: HRESULT と例外をマップする」を参照してください。

場合によっては、 ThrowExceptionForHR 以前の COM 呼び出しから例外が返されることがあります。 この場合は、次の回避策を使用し、2 番目のパラメーター (errorInfo) として を渡IntPtr(-1)すことができます。

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 パラメーターを解放し errorInfoIErrorInfo インターフェイスの COM 参照数を減らします。

メソッドが ThrowExceptionForHR 設定されている場合、現在のスレッドの IErrorInfo インターフェイスに基づいて例外が返されることに注意してください。 この場合、 errorCode パラメーターは無視されます。

一部の障害 HRESULT は定義された例外にマップされますが、それ以外のエラーはマップされません。 HRESULT が定義された例外にマップされる場合は、 ThrowExceptionForHR 例外のインスタンスを作成してスローします。 それ以外の場合は、 の System.Runtime.InteropServices.COMExceptionインスタンスを作成し、エラー コード フィールドを HRESULT で初期化し、その例外をスローします。 パラメーターは errorInfo 、エラーに関する追加情報を取得するために使用されます。

各 HRESULT から .NET Framework の同等の例外クラスへのマッピングについては、「 方法: HRESULT と例外をマップする」を参照してください。

こちらもご覧ください

適用対象