2

単純な int エラー コードを定義しました。

#define my_error 20

コードのどこかで、このエラーをスローします。

throw my_error;

ここで、スローされたこの例外をキャッチしてみます。

try
{
    ...
    ...
}
catch (my_error)
{
    cout << "Error: my error";
}

残念ながら、コンパイラはこれを承認していません:

  • 構文エラー:「定数」
  • catch ハンドラーは 1 つのタイプを指定する必要があります
  • '34' 行目から始まる 'try' ブロックには catch ハンドラがありません

これを行う方法はありますか?

4

2 に答える 2

4

C++11 を使用decltype(my_error)している場合は、 の型を変更した場合に備えて、を使用できますmy_error

try {
  // ...
} catch (const decltype(my_error)& e) {
  // ...
}

ここにデモがあります。

于 2012-05-16T11:02:39.207 に答える