@634

アサーション(assertion)

Advertisement

説明

Java2SDK1.4から導入された機能。プログラムの正当性をチェックする。

式1
assert boolean式;
式2
assert boolean式 : message
※messageにはboolean式の結果が false だった場合のメッセージを記述。

コンパイル・実行

現時点ではアサーションを使用するときに以下のオプションをつける必要がある。

コンパイル
javac -version 1.4 xxx.java
-version オプションなしでコンパイルすると vertion1.3 でコンパイルが行われるため、コンパイルエラーになる(互換性確保のため)。

実行
アサーションを有効にして実行
java -ea xxx.java
オプションなしで実行するとアサーションが無効になる。

導入例

アサーションを使用しない場合、numの値の正当性チェックは必ずif文を使用する必要があった。
// int型変数num
private int num = 0;

// 〜略

// ここで num の値は 0 以上のはず。
if(num < 0){
    System.out.println("num の範囲が不正");
    System.exit;
}

System.out.println(num);

アサーションの使用
// int型変数num
private int num = 0;

// 〜略

// ここで num の値は 0 以上のはず。
assert num >= 0;

System.out.println(num);

このアサーションが実行され、num >= 0 の評価結果が true の場合、処理は続行される。
評価結果が false の場合、メッセージが表示され処理が停止する。
Exception in thread "main" java.lang.AssertionError
        at Test.main(Test.java:10)


例その2:メッセージを記述した場合
assert num >= 0 : "num = " + num;

Exception in thread "main" java.lang.AssertionError: num = -1
        at Test.main(Test.java:10)

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール