Marshal.GetHRForException(Exception) メソッド

定義

指定した例外を HRESULT に変換します。

public:
 static int GetHRForException(Exception ^ e);
[System.Security.SecurityCritical]
public static int GetHRForException (Exception e);
public static int GetHRForException (Exception? e);
public static int GetHRForException (Exception e);
[<System.Security.SecurityCritical>]
static member GetHRForException : Exception -> int
static member GetHRForException : Exception -> int
Public Shared Function GetHRForException (e As Exception) As Integer

パラメーター

e
Exception

HRESULT に変換する例外。

戻り値

提供された例外に割り当てられる HRESULT。

属性

注釈

GetHRForException また、COM GetErrorInfoNEEDGUID 関数を呼び出すことによって取得できる例外の IErrorInfo インターフェイスも設定します。 この関数を使用すると、 属性を適用する COM インターフェイスのマネージド クラス実装で HRESULT 値を PreserveSigAttribute 返すことができます。 属性付きメソッドですべての例外をキャッチし、 メソッドを GetHRForException 使用して適切な HRESULT 値を返すようにします。 例外をメソッドの外部に伝達すると、不適切な動作が発生します。 (実際、共通言語ランタイムは、v テーブルを介してこのようなメソッドを呼び出す COM クライアントに例外を渡すことができません。

メソッドは、現在の GetHRForException スレッドの IErrorInfo インターフェイスを設定します。 これにより、現在のスレッドの IErrorInfo が既定で使用されるメソッドのようなThrowExceptionForHRメソッドが設定されている場合、予期しない結果が発生する可能性があります。

適用対象

こちらもご覧ください