如何在本地c++中捕获整数除零和访问冲突异常

How to catch integer divide by zero and access violation exceptions in native C++

本文关键字:整数 异常 访问冲突 c++      更新时间:2023-10-16

我需要捕捉整数除以零和访问违反读取或写入受保护的内存和显示我自己的对话框,并做一些适当的事情。这些异常不能被try {} catch{}机制捕获,因为硬件会产生这些异常。我如何捕获这些异常?任何建议或参考相关文章表示感谢mr.abzadeh

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

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

一个小的项目调整就足够了。只需在项目设置中启用/EHa选项。参见项目属性-> C/c++ ->代码生成->将使能c++异常修改为"Yes With SEH Exceptions"。就是这样!

查看详细信息:http://msdn.microsoft.com/en-us/library/1deeycx5 (v = vs.80) . aspx

不能捕获这些异常是很奇怪的。但如果是这样的话,我想你可以用自己的验证,抛出自己的异常。但是,您可能又错过了一些东西…