14
C ++で例外指定子を使用する必要がありますか?
C ++では、例外指定子を使用して、関数が例外をスローする場合とスローしない場合があることを指定できます。例えば: void foo() throw(); // guaranteed not to throw an exception void bar() throw(int); // may throw an exception of type int void baz() throw(...); // may throw an exception of some unspecified type 次の理由により、実際にそれらを使用することに疑問があります。 コンパイラーは、厳密には例外指定子を強制しません。そのため、利点は大きくありません。理想的には、コンパイルエラーが発生するようにします。 関数が例外指定子に違反している場合、標準的な動作はプログラムを終了することだと思います。 VS.Netでは、throw(X)をthrow(...)として扱うため、標準への準拠は強くありません。 例外指定子を使用する必要があると思いますか? 「はい」または「いいえ」で答え、答えを正当化するいくつかの理由を提供してください。