SEH结构化异常处理

SEH结构化异常处理

计算机领域异常:打断程序正常执行流程,不在期望之中的硬件和软件的异常

硬件一般指CPU抛出的问题,例如除以0,数据溢出等

软件一般指操作系统与程序通过exception语句抛出的异常

结构化异常处理和异常处理是微软对异常处理程序在实现上的不同

普通C++异常处理:使用3条附加的C++语句

try catch throw

作用:当正在执行的程序出现异常时,允许其找到安全出口。异常处理程序可捕获任何数据异常情况,包括C++类

try ……except……函数和try…… finally…… 不可以同时使用但是可以嵌套

异常程序可释放已获取资源,显示出的信息和程序内部状态供调试,使得调试从错误中恢复,尝试重新执行代码/关闭程序

1B0CEF4110F27A6AB2E6AB61E46B18BF

故障,例如页面故障——恢复到引起故障的指令之前的状态,然后再次执行一次,发生故障异常后程序仍能正常执行
陷阱——立即报告错误,返回地址为引起异常的下一条的地址
终止——不会报告精确位置且不允许重新执行

从左往右依次是——向量号 助记符 说明 类型 错误号 产生源

6B224C0374F57D5BD91D9B9F7388B5BA

SIMD 浮点异常

21-31 Intel 保留位

SEH 使得拥有回调函数的最后机会

对齐检查 Alignment check

可由任何对内存数据的引用除法

C93F7D6F9570D256D0D58473724EF27A

3857FBB5337AFDC1E4E6EB0EEEAC12BF

A630AC72A0F75FEC0C104F4392ED48E9

BC228BFA2F76EE7A60519C7B9E56C4F1

68EB2BFE87AF114E288BB1663A1C5F7A

AC8F882F567902C05263024AE4D49DBB

3A838A1BB8D0E036613D4634174AC584


SEH结构化异常处理
http://example.com/2024/03/08/SEH结构化异常处理/
作者
John Doe
发布于
2024年3月8日
许可协议