C++ プログラミングガイド

throw

throw 文は、次の例外ハンドラに例外とその値を送出するために使用されます。通常のthrow ブロックは、キーワード throw と式から構成されます。式の結果の型によって、どの catch ブロックに制御が移るかが決まります。catch ブロック内では、現在の例外と値は throw キーワードだけ (式は不要) で再送出できます。

この例では、try ブロック中の関数呼び出しは f() に制御を渡します。f()Overflow 型の例外を送出します。この例外は、Overflow 型の例外を処理する catch ブロックによって処理されます。


class Overflow {
                      // ...
public:
   Overflow(char,double,double);
};

void f(double x)
{
                      // ...
   throw Overflow('+',x,3.45e107);
}

int main() {
	try {
			              // ...
			f(1.2);
			              //...
	}
	catch(Overflow& oo) {
			              // Overflow 型の例外をここで処理する
	}
}