我正在运行一个 c++ 程序,其中包含 Snow Leapard 下所有异常的 catch 块。该程序是:
#include <iostream>
using namespace std;
const int DefaultSize = 10;
int main()
{
int top = 90;
int bottom = 0;
try
{
cout << "top / 2 = " << (top/ 2) << endl;
cout << "top divided by bottom = ";
cout << (top / bottom) << endl;
cout << "top / 3 = " << (top/ 3) << endl;
}
catch(...)
{
cout << "something has gone wrong!" << endl;
}
cout << "Done." << endl;
return 0;
}
我正在使用 g++ 版本 i686-apple-darwin10-g++-4.2.1 编译程序:g++ -o test test.cpp。catch 块没有执行。输出为:“top / 2 = 45 浮点异常”。没有错误消息或完成打印。输出与不存在 try-catch 块时完全相同。有人能告诉我为什么 catch 没有执行吗?我已经让用户定义的异常工作。