頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?というスタンスで最強のナレッジベースを目指すブログ

【Eclipce】アサーション(assert)を有効化する。

assertを有効化する。

アサーション(assert)の機能は、プログラム実行時にはデフォルト設定で無効になっているため、有効にする必要があります。
Eclipceで有効にするには、VM引数に「-enableassertions」又は「-ea」と記述します。 f:id:shiakisudev:20181202163634p:plain

assertの構文

assert文の構文は以下のとおりです。

assert 条件式;          //パターン①
assert 条件式 : 引数;   //パターン②
assert (条件式) : (引数);//パターン③

条件式にはboolean値を返す式を指定します。
結果がFalseの場合にのみ、java.lang.AssertionErrorが発生します。
パターン③のように、条件式や引数を()で括る記述も可能です。

assertの実行①

public static void main(String[] args) {
     int a,b,c;
     a = 100;
     b = 200;
     c = a + b;

     assert c ==30;
}

【実行結果】
Exception in thread "main" java.lang.AssertionError
    at test.testOfAssertion.main(testOfAssertion.java:11)

条件式にはc==30と書きましたが、実際は100+200=300となるため、assertの結果はFlaseとなりjava.lang.AssertionErrorが発生します。

assertの実行②

public static void main(String[] args) {
     int a,b,c;
     a = 100;
     b = 200;
     c = a + b;

     assert c ==30: "30ではありません。";
}

【実行結果】
Exception in thread "main" java.lang.AssertionError: 30ではありません。
    at test.testOfAssertion.main(testOfAssertion.java:11)

引数を与えてみました。そのまま出力されることがわかりました。