2

投稿が初心者の場合は申し訳ありません。私は主に数学の男です。

オペレーションズ リサーチのクラスの 1 つのために、小さな C++ コマンド ライン ツールを書いています。

私は次のようなものを持っています:

try {
   if( *some condition* ) {
      throw MY_ENUM;
   }
   ...
}
catch (int e) {
   if (e == MY_ENUM) {
      // output some diagnostics and exit
   }
   ...
}

しかし、MY_ENUM の代わりに SIGABRT がスローされ続けます。忘れている基本的なことは知っていますが、特定できません。ありがとう

4

1 に答える 1

4

この回答を投稿しているので、未回答として表示されなくなります。@Mankarse はこれをコメントとして正しく迅速に回答したので、投稿した場合は私の回答ではなく回答を受け入れてください。


スローされるオブジェクトが何らかの列挙型であり、上記のコードが s をキャッチするため、ここでの例外はキャッチされませんint

スローされた列挙値をキャッチするには、catch (MyEnumType e) { if (e == MY_ENUM) ... }代わりに使用します

于 2012-11-20T00:55:29.500 に答える