Java > assert文

更新日 2011-11-29
広告
assertを使うと、引数や返り値をチェックできる(Java version 1.6.0)。
assertの構文は以下である。
assert 真偽値を返す式
以下のサンプル AssertTest の test メソッドは、assertを使って引数のnullチェックをしている。
public class AssertTest {
    private static void test(String value) {
        assert value != null; // 引数がnullはありえない.
    }

    public static void main(String[] args) {
        AssertTest.test(null);
    }
}
mainメソッドからは、testメソッドにnullを渡している。つまり、testメソッドのassertは「偽」となる。
AssertTestを実行すると、以下の結果となる。
assert$ java -ea AssertTest 
Exception in thread "main" java.lang.AssertionError
	at AssertTest.test(AssertTest.java:7)
	at AssertTest.main(AssertTest.java:3)
このように、assert文が偽になった場合には、AssertionErrorを発行してくれる。 これにより、アプリケーションの挙動がおかしいことを検出できる。
ちなみに、-eaは、assert文を有効にするためのオプションである。-eaオプションなしで実行すると、assert文は無視される。
assert$ java AssertTest 
value = null
privateメソッドを実装する場合は、メソッドの冒頭でassertによる引数チェックを書いておいて損は無いだろう。
(ただしpublicメソッドにはassertはおすすめしない。publicメソッドは、誰がどう利用するかわからないため、AssertionErrorより例外を発行するほうがよい。例外は「メソッドの呼び出し側が例外を捕捉できる」ためである。)
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system