Marshal.ThrowExceptionForHR メソッド

定義

特定の失敗 HRESULT 値を使用して例外をスローします。

オーバーロード

ThrowExceptionForHR(Int32)

特定の失敗 HRESULT 値を使用して例外をスローします。

ThrowExceptionForHR(Int32, IntPtr)

指定した IErrorInfo インターフェイスに基づいて、特定のエラー HRESULT を使用して例外をスローします。

ThrowExceptionForHR(Int32)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

特定の失敗 HRESULT 値を使用して例外をスローします。

C#
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode);
C#
public static void ThrowExceptionForHR (int errorCode);

パラメーター

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)すことができます。

C#
public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ThrowExceptionForHR(Int32, IntPtr)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

指定した IErrorInfo インターフェイスに基づいて、特定のエラー HRESULT を使用して例外をスローします。

C#
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);
C#
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);

パラメーター

errorCode
Int32

必要な例外に対応する HRESULT。

errorInfo
IntPtr

エラーの詳細情報を提供する 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 と例外をマップする」を参照してください。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0