- ベストアンサー
アサーションと例外処理の違いについて
アサーションと例外処理の違いは何ですか? あまり変わらないような気がするのですが?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
動きのイメージで「あまり変わらないような気がする」というのは同感です。 逆に言うと、開発者が「意識的に区別」するべきものだと思います。 乱暴に言ってしまう、 アサーションはプログラムのバグを検出するもの (だから本番稼動時はオフにすることが多い)で、 例外は文字通り「例外」を検出するものです。 大事なのは「例外」の定義なのですが、 参考URLの内容を見ていただけるとわかるように 「アプリケーションで予想していない動き」 が例外です。 一方、「こんな状態は不正」だというのを 調べるのがアサーションではないでしょうか。
その他の回答 (2)
- kokemomo2005
- ベストアンサー率33% (3/9)
回答No.2
理解の範囲で簡単に。アサーションはアプリケーションで「論理的に起こりえない状態」をチェックするために使用します。バグが無く正しく動くことを検証するためのコードですね。
- liar_adan
- ベストアンサー率48% (730/1515)
回答No.1
例外処理は、常に有効です。 アサーションは有効・無効を切り替えることができます。 つまり、例外処理は、プログラムの動作に必要な部分です。 アサーションは主にデバッグのときに役立つ機能です。 ※そういえば私もアサーション使ったことなかったな。