SEHException クラス

定義

構造化例外処理 (SEH) エラーを表します。Represents structured exception handling (SEH) errors.

public ref class SEHException : System::Runtime::InteropServices::ExternalException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class SEHException : System.Runtime.InteropServices.ExternalException
type SEHException = class
    inherit ExternalException
Public Class SEHException
Inherits ExternalException
継承
属性

注釈

@No__t-0 クラスは、アンマネージコードからスローされたが、別の .NET Framework 例外に割り当てられていない SEH エラーを処理します。The SEHException class handles SEH errors that are thrown from unmanaged code, but that have not been mapped to another .NET Framework exception. @No__t-0 クラスは、HRESULT E_FAIL (0x80004005) にも対応しています。The SEHException class also corresponds to the HRESULT E_FAIL (0x80004005).

.NET Framework は、多くの場合、マネージドに相当する SEH 例外を検出します。The .NET Framework often encounters unmanaged SEH exceptions that are automatically mapped to managed equivalents. 一般的なアンマネージ SEH 例外が2つあります。There are two common unmanaged SEH exceptions:

  • STATUS_NO_MEMORY 例外は、OutOfMemoryException クラスに自動的にマップされます。STATUS_NO_MEMORY exceptions are automatically mapped to the OutOfMemoryException class.

  • STATUS_ACCESS_VIOLATION の例外は、次のように自動的にマップされます。STATUS_ACCESS_VIOLATION exceptions are automatically mapped as follows:

    • @No__t-0 が適用されている場合は、すべてのアクセス違反が NullReferenceException クラスにマップされます。If legacyNullReferencePolicy is applied, all access violations are mapped to the NullReferenceException class.

    • 読み取り/書き込みが試行されたアドレスが JIT コンパイルコードに含まれていない場合、例外は AccessViolationException クラスにマップされます。If the address at which the read/write was attempted is not in JIT-compiled code, the exception is mapped to the AccessViolationException class.

    • 読み取り/書き込みが試行されたアドレスが JIT でコンパイルされたコード内にあり、それが OS の Null パーティション領域にない場合、例外は AccessViolationException クラスにマップされます。If the address at which the read/write was attempted is in JIT-compiled code, but it is not in the OS Null partition area, the exception is mapped to the AccessViolationException class.

    • @No__t が0でなく、読み取り/書き込みが試行されたアドレスが JIT コンパイルコード内であり、OS の Null パーティション領域にある場合は、例外が NullReferenceException クラスにマップされます。If there is no legacyNullReferencePolicy, and the address at which the read/write was attempted is in JIT-compiled code and in the OS Null partition area, the exception is mapped to the NullReferenceException class.

特定の例外に自動的にマップされない SEH 例外は、既定では @no__t 0 クラスにマップされます。Any SEH exception that is not automatically mapped to a specific exception is mapped to the SEHException class by default.

@No__t-0 クラスでは、アンマネージC++例外デストラクターが呼び出されないことに注意してください。Note that the SEHException class does not cause unmanaged C++ exception destructors to be called. アンマネージC++例外のデストラクターが呼び出されるようにするには、catch ブロックで次の構文を使用します。To ensure that unmanaged C++ exception destructors are called, use the following syntax in the catch block.

Catch   
     ' Handle catch here.  
End Try  
catch  
{  
     // Handle catch here.  
}  
catch(…)  
{  
     // Handle catch here.  
}   

コンストラクター

SEHException()

SEHException クラスの新しいインスタンスを初期化します。Initializes a new instance of the SEHException class.

SEHException(SerializationInfo, StreamingContext)

シリアル化データから、SEHException クラスの新しいインスタンスを初期化します。Initializes a new instance of the SEHException class from serialization data.

SEHException(String)

指定したメッセージを使用して、SEHException クラスの新しいインスタンスを初期化します。Initializes a new instance of the SEHException class with a specified message.

SEHException(String, Exception)

指定したエラー メッセージおよびこの例外の原因となった内部例外への参照を使用して、SEHException クラスの新しいインスタンスを初期化します。Initializes a new instance of the SEHException class with a specified error message and a reference to the inner exception that is the cause of this exception.

プロパティ

Data

例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(継承元 Exception)
ErrorCode

エラーの HRESULT を取得します。Gets the HRESULT of the error.

(継承元 ExternalException)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(継承元 Exception)
Message

現在の例外を説明するメッセージを取得します。Gets a message that describes the current exception.

(継承元 Exception)
Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(継承元 Exception)

メソッド

CanResume()

例外から回復できるかどうか、および例外がスローされたポイントからコードを続行できるかどうかを示します。Indicates whether the exception can be recovered from, and whether the code can continue from the point at which the exception was thrown.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。When overridden in a derived class, sets the SerializationInfo with information about the exception.

(継承元 Exception)
GetType()

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

エラーの HRESULT が格納された文字列を返します。Returns a string that contains the HRESULT of the error.

(継承元 ExternalException)

イベント

SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(継承元 Exception)

適用対象

こちらもご覧ください