C++ の runtime_error と logic_error の違い2019年01月13日 13時25分39秒

std::exception から runtime_error と logic_error が派生されている。runtime_error は動的な問題だと分かるが、logic error は単体で見ると分かりづらい。いくつか調べてみると runtime error と logic error が対になっている様だ。

runtime error はその名の通り、実行時に動的に検出されるエラーを通知するのに throw する。

logic error は各種関数の前提条件などを満たしていない、実装上での異常を告知するのに throw する。大雑把にいえば、ライブラリの実装者が投げる例外だろう。

C++ の例外は、std::exception は exception ヘッダファイルにあり、これらから派生する runtime_error 等は stdexcept ヘッダファイルにある。