SEHException 類別

定義

代表結構化異常處理(SEH)錯誤。

public ref class SEHException : Exception
public ref class SEHException : System::Runtime::InteropServices::ExternalException
public class SEHException : Exception
public class SEHException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class SEHException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SEHException : System.Runtime.InteropServices.ExternalException
type SEHException = class
    inherit Exception
type SEHException = class
    inherit ExternalException
[<System.Serializable>]
type SEHException = class
    inherit ExternalException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SEHException = class
    inherit ExternalException
Public Class SEHException
Inherits Exception
Public Class SEHException
Inherits ExternalException
繼承
SEHException
繼承
屬性

備註

SEHException 類別處理來自未受管理程式碼但尚未映射到其他 .NET Framework 例外的 SEH 錯誤。 該 SEHException 類別也對應於 HRESULTE_FAIL (0x80004005)。

.NET 經常遇到自動映射到受管理等效物的未受管理 SEH 例外。 有兩種常見的非管理型 SEH 例外:

  • STATUS_NO_MEMORY 例外會自動映射到 OutOfMemoryException 該類別。

  • STATUS_ACCESS_VIOLATION 例外會自動映射如下:

    • legacyNullReferencePolicy 套用 ,所有存取違規都會映射到該 NullReferenceException 類別。
    • 如果嘗試讀寫的位址不在 JIT 編譯的程式碼中,例外會映射到該 AccessViolationException 類別。
    • 如果嘗試讀寫的位址屬於 JIT 編譯的程式碼,但不在 OS Null 分割區,則例外會映射到該 AccessViolationException 類別。
    • 若沒有 legacyNullReferencePolicy,且嘗試讀寫的位址位於 JIT 編譯程式碼且位於 OS Null 分割區,則例外會映射到該 NullReferenceException 類別。

任何未自動映射到特定例外的 SEH 例外,預設都會映射到該 SEHException 類別。

請注意,該 SEHException 類別不會呼叫非管理的 C++ 例外結構子。 為確保呼叫未受管理的 C++ 例外解構子,請在區 catch 塊中使用以下語法。

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

建構函式

名稱 Description
SEHException()

初始化 SEHException 類別的新執行個體。

SEHException(SerializationInfo, StreamingContext)
已淘汰.

從序列化資料初始化該類別的新實例 SEHException

SEHException(String, Exception)

初始化類別的新實例 SEHException ,並附上指定的錯誤訊息及導致該異常的內部例外的參考。

SEHException(String)

使用指定的訊息,初始化 SEHException 類別的新實例。

屬性

名稱 Description
Data

取得一組鍵值對,提供關於例外的額外使用者定義資訊。

(繼承來源 Exception)
ErrorCode

明白 HRESULT 了錯誤。

(繼承來源 ExternalException)
HelpLink

取得或設定與此例外相關的說明檔案連結。

(繼承來源 Exception)
HResult

取得或設定 HRESULT,一個編碼的數值,指派給特定例外。

(繼承來源 Exception)
InnerException

會取得 Exception 造成目前例外的實例。

(繼承來源 Exception)
Message

取得描述目前例外狀況的訊息。

(繼承來源 Exception)
Source

取得或設定造成錯誤之應用程式或物件的名稱。

(繼承來源 Exception)
StackTrace

會取得呼叫堆疊上即時框架的字串表示。

(繼承來源 Exception)
TargetSite

會取得拋出當前例外的方法。

(繼承來源 Exception)

方法

名稱 Description
CanResume()

表示例外是否能從中恢復,以及程式碼是否能從例外拋出的點繼續。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetBaseException()

當在派生類別中被覆寫時,回傳 Exception 是一個或多個後續例外的根因。

(繼承來源 Exception)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetObjectData(SerializationInfo, StreamingContext)
已淘汰.

在衍生類別中覆寫時,使用例外狀況的相關信息來設定 SerializationInfo

(繼承來源 Exception)
GetType()

取得目前實例的執行時型態。

(繼承來源 Exception)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

建立並回傳當前例外的字串表示。

(繼承來源 Exception)
ToString()

回傳包含錯誤 HRESULT 的字串。

(繼承來源 ExternalException)

事件

名稱 Description
SerializeObjectState
已淘汰.

當例外被序列化以建立包含該例外序列化資料的例外狀態物件時,會發生這種情況。

(繼承來源 Exception)

適用於

另請參閱