Snow Leapard ですべての例外に対して catch ブロックを使用して C++ プログラムを実行しています。プログラムは次のとおりです。
#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 浮動小数点例外」。エラー メッセージや Done は出力されません。出力は、try-catch ブロックが存在しない場合とまったく同じです。キャッチが実行されない理由を教えてもらえますか? ユーザー定義の例外が機能するようになりました。