• ベストアンサー

アサーションと例外処理の違いについて

アサーションと例外処理の違いは何ですか? あまり変わらないような気がするのですが?

質問者が選んだベストアンサー

  • ベストアンサー
  • kazsharp
  • ベストアンサー率37% (16/43)
回答No.3

動きのイメージで「あまり変わらないような気がする」というのは同感です。 逆に言うと、開発者が「意識的に区別」するべきものだと思います。 乱暴に言ってしまう、 アサーションはプログラムのバグを検出するもの (だから本番稼動時はオフにすることが多い)で、 例外は文字通り「例外」を検出するものです。 大事なのは「例外」の定義なのですが、 参考URLの内容を見ていただけるとわかるように 「アプリケーションで予想していない動き」 が例外です。 一方、「こんな状態は不正」だというのを 調べるのがアサーションではないでしょうか。

参考URL:
http://www.javaworld.jp/technology_and_programming/-/10249.html

その他の回答 (2)

回答No.2

理解の範囲で簡単に。アサーションはアプリケーションで「論理的に起こりえない状態」をチェックするために使用します。バグが無く正しく動くことを検証するためのコードですね。

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/lang/assert.html
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

例外処理は、常に有効です。 アサーションは有効・無効を切り替えることができます。 つまり、例外処理は、プログラムの動作に必要な部分です。 アサーションは主にデバッグのときに役立つ機能です。 ※そういえば私もアサーション使ったことなかったな。

関連するQ&A