文法:
try { 命令リスト; } catch( 型A 引数 ) { 命令リスト; } catch( 型B 引数 ){ 命令リスト; } ... catch( 型N 引数 ) { 命令リスト; }
throw文はC++の例外処理メカニズムそのものを表しています。この構文はtry, catch構文と一緒に使用されます。C++の例外処理システムは、エラーからの復帰のためのエレガントな仕組みをプログラマに提供します。
通常は、エラーが発生する可能性が潜在的にあるコードを実行するときにtryブロックを使用します。このコードの中では、throw文が実行される可能性があります。throw文が実行されると実行ポイントがtryブロックの外に移動し、catchブロックの一つに移動します。
下記のコードはあらゆる種類の例外が投げられてもキャッチすることができますが、投げられたオブジェクトにアクセスすることはできません:
catch (...) { }
catchブロックの中で
throw
と書くと、以前投げられたオブジェクトを再度投げます。
サンプル:
try { cout << "例外を投げる前" << endl; throw 42; cout << "ここは実行されません" << endl; } catch( int error ) { cerr << "エラー: キャッチされた例外 = " << error << endl; }