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 = nullprivateメソッドを実装する場合は、メソッドの冒頭でassertによる引数チェックを書いておいて損は無いだろう。
(ただしpublicメソッドにはassertはおすすめしない。publicメソッドは、誰がどう利用するかわからないため、AssertionErrorより例外を発行するほうがよい。例外は「メソッドの呼び出し側が例外を捕捉できる」ためである。)
広告
お問い合わせは sweng.tips@gmail.com まで。