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 會處理從 Unmanaged 程式碼擲回但尚未對應至另一個.NET Framework例外狀況的 SEH 錯誤。 類別 SEHException 也會對應至 HRESULTE_FAIL (0x80004005) 。

.NET Framework通常會遇到自動對應至 Managed 對等專案的 Unmanaged 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 不會呼叫 Unmanaged C++ 例外狀況解構函式。 若要確保呼叫 Unmanaged C++ 例外狀況解構函式,請在 區塊中使用 catch 下列語法。

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

建構函式

SEHException()

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

SEHException(SerializationInfo, StreamingContext)

從序列化 (Serialization) 資料,初始化 SEHException 類別的新執行個體。

SEHException(String)

使用指定的訊息,初始化 SEHException 類別的新執行個體。

SEHException(String, Exception)

使用指定的錯誤訊息以及造成此例外狀況的內部例外狀況的參考,初始化 SEHException 類別的新執行個體。

屬性

Data

取得鍵值組的集合,這些鍵值組會提供關於例外狀況的其他使用者定義資訊。

(繼承來源 Exception)
ErrorCode

取得錯誤的 HRESULT

(繼承來源 ExternalException)
HelpLink

取得或設定與這個例外狀況相關聯的說明檔連結。

(繼承來源 Exception)
HResult

取得或設定 HRESULT,它是指派給特定例外狀況的編碼數值。

(繼承來源 Exception)
InnerException

取得造成目前例外狀況的 Exception 執行個體。

(繼承來源 Exception)
Message

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

(繼承來源 Exception)
Source

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

(繼承來源 Exception)
StackTrace

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

(繼承來源 Exception)
TargetSite

取得擲回目前例外狀況的方法。

(繼承來源 Exception)

方法

CanResume()

指示例外狀況是否可復原,以及程式碼是否可從擲回例外狀況的地方繼續進行。

Equals(Object)

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

(繼承來源 Object)
GetBaseException()

在衍生類別中覆寫時,傳回一或多個後續的例外狀況的根本原因 Exception

(繼承來源 Exception)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetObjectData(SerializationInfo, StreamingContext)

在衍生類別中覆寫時,使用例外狀況的資訊設定 SerializationInfo

(繼承來源 Exception)
GetType()

取得目前執行個體的執行階段類型。

(繼承來源 Exception)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

建立並傳回目前例外狀況的字串表示。

(繼承來源 Exception)
ToString()

傳回字串,其中包含錯誤的 HRESULT。

(繼承來源 ExternalException)

事件

SerializeObjectState
已淘汰.

當例外狀況序列化,以建立包含例外狀況相關序列化資料的例外狀況狀態物件時,就會發生此事件。

(繼承來源 Exception)

適用於

另請參閱