エラーを示す戻り値の代わりにコードで C++ 例外を使用するため、コードは例外セーフである必要があります。したがって、関数宣言にコメントとして例外仕様を追加します。例えば:
// Does x and y. strong-guarantee
void XandY();
// Checks something.
bool CheckSomething() noexcept;
これは良い習慣ですか?
さらに、これらの仕様を作成するために自分のコードを評価する場合、C++ 例外、または nullptr の逆参照、オーバーフロー、ゼロ除算などの SEH 例外のみを考慮する必要がありますか?
C++ 例外をスローすることはありませんが、SEH 例外をスローする可能性があるサードパーティ ライブラリを使用するとします。そのライブラリの関数に依存する関数は、noexcept になることはありますか?
void MyFunction() noexcept // <-- Is noexcept viable?
{
OtherFunction(); // may throw SEH exception
}