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 Framework经常遇到自动映射到托管等效项的非托管 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.  
}   

构造函数

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)

适用于

另请参阅