-1

私の主な機能では、私はコーディングしました:

    try {
    empty.addItem( );
    throw  50;
} catch(int x ) {
    cout<<"fail "<<x;
}

しかし、プログラムを実行すると、fail 50 は出力されません。私のエラーは何ですか?また、例外を適切に使用するにはどうすればよいですか?

4

2 に答える 2

0

以下のLinuxのテストプログラムで動作します。

#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    try {
        throw 50;
    } catch(int x ) {
        cout << "fail " << x << endl;
    }
    return 0;
}

$ g++ throw.cpp 
$ ./a.out
fail 50

このコードのチャンクがプログラムで実行されていると確信していますか?

于 2013-11-11T05:02:19.073 に答える
0

コードに明らかに問題はありません。「fail 50」が表示されない理由として、次の 2 つが考えられます。

  1. プログラム制御が実際にtryブロックに到達することはありませんthrow

  2. empty.addItem()ではない例外をスローしていますint。代わりに、キャッチされない例外でプログラムが不思議なことに失敗することに気付くでしょう。

于 2013-11-11T05:06:49.647 に答える