如何捕获整数除以零并在本机C ++中访问违规异常

时间:2011-10-07 08:59:32

标签: c++ windows visual-c++

我需要捕获整数除以零并访问违规读取或写入受保护的内存并显示我自己的对话框,并做一些适当的事情。 try {} catch {}机制无法捕获这些异常,因为硬件会生成这些异常。 我怎么能抓住例外? 对相关文章的任何建议或参考表示赞赏 mr.abzadeh

3 个答案:

答案 0 :(得分:8)

请参阅__try / __except机制的文档。 这在Windows中用于捕获硬件异常。

答案 1 :(得分:2)

有一种非常简单的方法可以使用 try - >在Visual Studio中捕获任何类型的异常(除以零,访问冲突等)。 catch(...)block :)

一个小项目调整就足够了。只需在项目设置中启用/ EHa选项。请参阅项目属性 - > C / C ++ - >代码生成 - >将“启用C ++例外”修改为“是和SEH例外”。就是这样!

详情请见: http://msdn.microsoft.com/en-us/library/1deeycx5(v=vs.80).aspx

答案 2 :(得分:1)

奇怪的是没有可能捕获这些异常。但如果它是这样的,那么我猜你可以自己进行验证并抛出自己的异常。但同样,你可能会遗漏一些东西......