TOP > Java > アサーション |
アサーションの概要
アサーションを利用すれば開発用の仮説をテストする事ができる。プログラムを配備する時は、アサーションコードは実質的に蒸発するので、デバックコードを探して取り除かなくてもオーバーヘッドは残らない。
アサーションはtrueのみを調べ、trueの時は以下のコードが実行され、falseの時は「AssertionError」が投げられる。※このエラーを例外ハンドラで処理してはいけない。
アサーションの書き方
※アサーションに関する「式」とはブール式の事である。
アサーションを有効にする
アサーション式が含まれているソースコードをコンパイルする。
アサーション対応のソースコードをコンパイルするには、1.4以降が必要。
コンパイル:javac -source 1.4 Test.java
assertを識別子として使いたいなら、バージョンを1.3にする。
アサーション式が含まれているソースコードを実行する。
java -ea Testもしくは、java -enableassertions Test
実行時にアサーションを無効にするには、以下のように実行する。
java -da Testもしくは、java -disableassertions Test
アサーションの実行のまとめ
アサーションの例
class Test{ public static void main(String[] args){ int a = 1 ; assert (a < 0): "a < 0" ; } } アサーション適切な使い方
アサーションの不適切な例1
class Test{ public static void main(String[] args){ Test t = new Test() ; t.dostuff(-3) ; } public void dostuff(int x){ assert (x > 0) ; } } アサーションの不適切な例2
class Test2{ int a ; public static void main(String[] args){ Test t = new Test() ; t.a = -3 ; assert(t.assertTest(t.a)) ; } private boolean assertTest(int x){ if(x < 0){ return true ; }else{ return false ; } } } アサーションの適切な例1
class Test{ public static void main(String[] args){ Test t = new Test() ; t.dostuff(-3) ; } private void dostuff(int x){ assert (x > 0) ; } } アサーションの適切な例2
class Test{ public static void main(String[] args){ Test t = new Test() ; t.switchTest(5) ; } public void switchTest(int x){ switch(x) { case 2 : System.out.println("ok") ; default : assert false ; } } } |
Copyright 2007 ためになるホームページ All Rights Reserved. |