重複の可能性:
アサートまたは例外による契約テストによる設計?
アサートの代わりに例外を使用することを決定する際に従うべき経験則はありますか (またはその逆)。現在、実行時にユーザー側で発生すると思われるもの (ソケットまたはファイル エラーなど) の場合にのみスローします。私が使用する他のほとんどすべてはアサートします。
また、アサートをスローする場合、スローするのに適した標準オブジェクトは何ですか? 私の記憶が正しければ がありますがstd::logic_error
、それは投げるのに適したオブジェクトではありませんか? 不足しているファイルまたは予期しない入力 (フロントエンド アプリではなくコマンド ラインからなど) に対して何をスローしますか?