SEHException 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示结构化异常处理 (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处理从非托管代码引发但尚未映射到其他.NET Framework异常的 SEH 错误。 类 SEHException 还对应于 HRESULT
E_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 |
获取错误的 |
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) |
适用于
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈