nDiki : Java の assertion
Java の assertion
Java では assertion 機能は J2SE 1.4 で導入された。
assertion を有効化する
コンパイル(Javac)
assert を使う場合は
javac -source 1.4 ...
とする。
コンパイル (Ant)
Javac タスクの source 属性で 1.4 を指定する。
<javac srcdir="." source="1.4" />
実行 (java)
実行時に -ea (-enableassertions) オプションを指定する。 システムクラス内のアサーションも有効にするには -esa (-enablesystemassertions) オプションを使用する。
実行 (Ant)
Junit タスクで assertion を有効にするには junit の fork 属性を yes にし、 jvmarg 子要素で -ea オプションを指定する。
<junit fork="yes"> <jvmarg value="-ea" /> </juni>
実行 (Tomcat)
catalina.sh start する前に環境変数 JAVA_OPTS に -ea オプションを指定する。
スポンサード リンク
Related term
2004年5月16日 (日)
■ assertion

昼食の時に話題になったので、考えてみた。
@ assertion を書いているか? いつ書くか?
最初からあまり書くことはない。 大抵、デバッグ中に書く。
ただし assertion を埋め込むようなデバッグをした次のコーディングフェーズでは、結構書く(長続きはしない)。
契約による設計をしたいと思いつつ、場当たり的。
@ C++ の時
最初に、自前の assert 処理を定義する(assert 関連マクロ、例外クラス、assertion を評価する関数など)。
比較的 assertion を埋め込む。
@ Java の時
うーん。C++ の時ほどは書かないかな。
assert a_obj != null;
とか書いていて後で「あまり意味ないな」って思ったり。 C++ だと assertiion でチェックしておかないと発見が遅れる場合があるが、Java だと NullPointerException が吐かれるから大抵気がつくから。
@ Perl の時
簡単に無効化できないという意識があるためほとんど書かない。 大規模なパッケージの場合は、Makefile.PL を実行する際デバッグフラグを立てると make 時にコメントアウトされている assertion を有効にするようにソースコードを書き換える。
@ assertion を書くのをためらう時
- assertion の条件式の計算がヘビーな時
- assertion でチェックする条件の値を求めるのが面倒な時(ループを回さなければならないとか)
- 本来のコードより assertion の方がずっと多くてコードが読みにくくなる場合
- return 文が複数ある時(事後条件)
- 他のメソッドの戻り値を直接 return してしまう時(事後条件)
- 久しぶりに build.xml を書く (2005-11-14)
- 今日のさえずり - Twitter 割引を実施する大井町のすし処さいしょ (2010-02-04)
- Module::Build でソースパッケージング (2005-08-24)
- 久しぶりの C++ は GNU Automake + CppUnit で (2009-03-13)
- ハッシュとは (2004-06-09)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.025591s / load averages: 0.08, 0.19, 0.19
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。