-4

リリース構成でVS2010とC++を使用しています

次は正常に実行されました。

int status;
try
{
    status = myfunction(arg1, arg2);
}
catch (int e)
{
    cout << "An exception occurred. Exception Nr. " << e << endl;
}

ただし、次のプログラムがクラッシュしました。

int status;
status = myfunction(arg1, arg2);

どうしたの?
サードパーティのdllの一部であるメソッドmyfunctionのソースがありません。

4

1 に答える 1

5

try / catchブロックを削除することにより、関数が呼び出されたときにスローされる例外をキャッチしません。これにより、キャッチされなかった例外がスタックを最後まで巻き上げ、main()まだ処理されていないため、プログラムを終了します。

出力から、スローされた整数は、正確に発生したエラーのコードであるように見えます。これを調整できるかどうかを確認するには、エラーコードを調べる必要があります。

于 2012-05-21T15:30:00.353 に答える