Marshal.ThrowExceptionForHR メソッド

定義

特定のエラー HRESULT 値を持つ例外をスローします。

オーバーロード

名前 説明
ThrowExceptionForHR(Int32)

特定のエラー HRESULT 値を持つ例外をスローします。

ThrowExceptionForHR(Int32, IntPtr)

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

ThrowExceptionForHR(Int32, Guid, IntPtr)

ThrowExceptionForHR(Int32)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
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 番目のパラメーター (IntPtr(-1)) としてerrorInfoを渡すことができます。

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

こちらもご覧ください

適用対象

ThrowExceptionForHR(Int32, IntPtr)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
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) インターフェイスを使用するを指定するか、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 と例外をマップするを参照してください。

こちらもご覧ください

適用対象

ThrowExceptionForHR(Int32, Guid, IntPtr)

ソース:
Marshal.cs
ソース:
Marshal.cs
public:
 static void ThrowExceptionForHR(int errorCode, Guid % iid, IntPtr pUnk);
public static void ThrowExceptionForHR(int errorCode, in Guid iid, IntPtr pUnk);
static member ThrowExceptionForHR : int * Guid * nativeint -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer, ByRef iid As Guid, pUnk As IntPtr)

パラメーター

errorCode
Int32
iid
Guid
pUnk
IntPtr

nativeint

適用対象