SEHException SEHException SEHException SEHException Class

定義

構造化例外処理 (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
継承
属性

注釈

クラスSEHExceptionは、アンマネージコードからスローされたが、別の .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. クラスSEHExceptionHRESULTE_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:

    • legacyNullReferencePolicy適用されて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.

    • がないlegacyNullReferencePolicy場合、および読み取り/書き込みが試行されたアドレスが 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 例外は、既定でSEHExceptionクラスにマップされます。Any SEH exception that is not automatically mapped to a specific exception is mapped to the SEHException class by default.

詳細については、MSDN ライブラリの「アンマネージ例外」と「構造化例外処理」を検索してください。For more information, search on "unmanaged exceptions" and "Structured Exception Handling" in the MSDN Library.

クラスではSEHException 、アンマネージ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() SEHException() SEHException()

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

SEHException(SerializationInfo, StreamingContext) SEHException(SerializationInfo, StreamingContext) SEHException(SerializationInfo, StreamingContext) SEHException(SerializationInfo, StreamingContext)

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

SEHException(String) SEHException(String) SEHException(String) SEHException(String)

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

SEHException(String, Exception) SEHException(String, Exception) SEHException(String, Exception) 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.

メソッド

CanResume() CanResume() CanResume() 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) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

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

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

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

(Inherited from Exception)
GetType() GetType() GetType() GetType()

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

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from ExternalException)

プロパティ

Data Data Data Data

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

(Inherited from Exception)
ErrorCode ErrorCode ErrorCode ErrorCode

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

(Inherited from ExternalException)
HelpLink HelpLink HelpLink HelpLink

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

(Inherited from Exception)
HResult HResult HResult HResult

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

(Inherited from Exception)
InnerException InnerException InnerException InnerException

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

(Inherited from Exception)
Message Message Message Message

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

(Inherited from Exception)
Source Source Source Source

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

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

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

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

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

(Inherited from Exception)

イベント

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

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

(Inherited from Exception)

適用対象

こちらもご覧ください