try ブロック を使用して、
すぐに処理する例外をスローする可能性のあるプログラムのエリアを示します。
関数 try ブロック を使用して、関数の本体すべてで例外を検出することを指示します。
構文 - try ブロック .---------. V | >>-try--{--statements--}----handler-+--------------------------><
構文 -- 関数 try ブロック .---------. V | >>-try--+----------------------------+--function_body----handler-+->< '-:--member_initializer_list-'
以下は、メンバー初期化指定子、関数 try ブロック、および try ブロックを持つ関数 try ブロックの例です。
#include <iostream> using namespace std; class E { public: const char* error; E(const char* arg) : error(arg) { } }; class A { public: int i; // A function try block with a member // initializer A() try : i(0) { throw E("Exception thrown in A()"); } catch (E& e) { cout << e.error << endl; } }; // A function try block void f() try { throw E("Exception thrown in f()"); } catch (E& e) { cout << e.error << endl; } void g() { throw E("Exception thrown in g()"); } int main() { f(); // A try block try { g(); } catch (E& e) { cout << e.error << endl; } try { A x; } catch(...) { } }
次に、上記の例の出力を示します。
Exception thrown in f() Exception thrown in g() Exception thrown in A()
クラス A のコンストラクターには、メンバー初期化指定子を持つ関数 try ブロックがあります。 関数 f() には、関数 try ブロックがあります。 main() 関数は、try ブロックを含んでいます。
関連参照