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