SEHException 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示结构化异常处理 (SEH) 错误。
public ref class SEHException : Exceptionpublic ref class SEHException : System::Runtime::InteropServices::ExternalExceptionpublic class SEHException : Exceptionpublic 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.ExternalExceptiontype SEHException = class
    inherit Exceptiontype SEHException = class
    inherit ExternalException[<System.Serializable>]
type SEHException = class
    inherit ExternalException[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SEHException = class
    inherit ExternalExceptionPublic Class SEHException
Inherits ExceptionPublic Class SEHException
Inherits ExternalException- 继承
- 继承
- 属性
注解
              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 | 获取错误的  | 
| 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) | 
适用于
另请参阅
- Exception
- .NET 中处理和引发异常
- 如何:映射 HRESULT 和异常
- 结构化异常处理 (C/C++)