共用方式為


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)
已淘汰.

從串行化數據初始化 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)

適用於

另請參閱