这是一段简单的代码,其中除以零.我想抓住它:
#include <iostream>
int main(int argc, char *argv[]) {
int Dividend = 10;
int Divisor = 0;
try {
std::cout << Dividend / Divisor;
} catch(...) {
std::cout << "Error.";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是应用程序无论如何都会崩溃(即使我选择-fexceptions了MinGW).
是否有可能捕获到这样的异常(我理解的不是C++异常,而是FPU异常)?
我知道我可以在分割之前检查除数,但我做了一个假设,因为除零是罕见的(至少在我的应用程序中),尝试分割会更有效(并且如果捕获错误则更有效)它发生)而不是每次除数前的除数.
我正在WindowsXP计算机上进行这些测试,但是想让它跨平台.