1回のインタビューからの質問。
このC++コードの意味を説明してください。
void Foo() throw;
void Foo() throw;
これは構文エラーです。例外仕様(C ++98§15.4)の文法は次のとおりです。
例外仕様:
throw
(
type-id-list opt)
括弧が必要であることに注意してください。
一方で、
void Foo() throw();
関数Foo()
が例外をスローしないことを意味します。
void Foo() throw;
整形式ではありません。
代わりにvoid Foo() throw();
、関数'Foo'が例外をスローしないように宣言されていることを意味します
$ 15.4 / 10-「例外仕様のない関数はすべての例外を許可します。例外仕様が空の関数throw()は、例外を許可しません。」
インタビューでは、この質問は例外チェックについて話す良い機会を提供します。C++とJavaの違い。あなたの個人的な好みや意見; 例外チェックが傷ついたり助けになったりしたときなど。構文規則を示す文字通り正しい一文の答えではなく、プログラミングや考え方について話すための招待状についての質問です。あなたが自分よりも多くを知っているふりをしたり、あなたの哲学が彼らの哲学と非常に異なっている場合、危険かもしれません。
これは、開発者が意味のある関数名を使用していないことを意味します...