C++には、例外指定というものがある。これは、ある関数から投げられる例外を、あらかじめ明示的に指定しようという目的で作られた。 void f() throw(int, float, std::exception) ; ここで、もし関数fが、int, float, std::exception以外の例外を投げた場合、関数std::unexpectedが呼ばれる。つまりこれは、関数tryブロックを使って以下のように書くのに等しい。 void f() try { // 関数本体 } catch( int ) { throw ; } catch( float ) { throw ; } catch( std::exception ){ throw ; } catch( ... ) { std::unexpected() ; } この機能は、それほど難しいこともない。極論で言えば、上記のように、単な