首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

问SEH解决办法

2014-01-12 
问SEH我觉得异常是属于函数的,就是对函数错误输入的检测,若输入正确,函数也就必定能正确处理。完整的说,异

问SEH
    我觉得异常是属于函数的,就是对函数错误输入的检测,若输入正确,函数也就必定能正确处理。完整的说,异常就是在一次函数调用过程中对输入的检测。
     在老罗的《windows32位环境下的汇编程序设计》的SEH一章中,避开了两个问题:1.如何触发指定异常。2.seh节点如何判断自己是否能处理。若这两个问题不解决,那seh链就只能有一个节点,若这样,seh和过滤器又有何区别呢?请各位大神解决我这两个疑问!
[解决办法]
SEH 异常不是对函数输入的检测! 它是底层的 CPU 报告给操作系统的!

触发异常的方式很多,比如访问了非法的内存,除 0 了,运行到错误的指令,企图执行特权指令等等,它可以捕获不是你手动触发的异常。并不是语言层次的参数错误,如找不到文件之类的。当然你可以自己用代码来检测参数错误,然后用 RaiseException 函数来触发一个异常。

判断能否处理主要是根据异常的类型,出错的位置,相关寄存器的内容这些来判断。

热点排行