try キーワード

C++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 ブロックを含んでいます。

関連参照

IBM Copyright 2003