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

让C++的try/catch捕捉除0异常,GCC的编译选项是什么

2012-04-15 
让C++的try/catch捕捉除0错误,GCC的编译选项是什么?VC的编译选项可以让C++的try/catch捕捉除0错误,GCC的编

让C++的try/catch捕捉除0错误,GCC的编译选项是什么?
VC的编译选项可以让C++的try/catch捕捉除0错误,GCC的编译选项是什么?
C++遇到除0错误的时候,默认不能用try/catch来捕捉。
Windows上面VC可以通过指定/EHa编译选项来让try/catch来捕捉除0错误。
Linux上面GCC默认不能捕捉到,而是操作系统检测到硬件错误,程序崩溃。

我的问题是:GCC可否也有编译选项,可以让标准C++的异常处理来捕捉除0错误?

C/C++ code
#include<iostream>#include <excpt.h>using namespace std;void fail() { //Only When /EHa is enabled, could C++ catch divide 0 exception   try{      int i=0, j=1;      j /= i;   // This will throw a SE (divide by zero).   }   catch(...){      cout<<"Divide by 0."<<endl;   }}void main(){   __try {      fail();    }// __except will only catch an exception here   __except(EXCEPTION_EXECUTE_HANDLER) {      // if the exception was not caught by the catch(...) inside fail()      cout << "An exception was caught in __except." << endl;   }}



[解决办法]
-mcheck-zero-division
是不是这个?
[解决办法]
没有
用 signal

热点排行