アサーション(Assertion)

アサーションは、デバッグ時にプログラムの状態や条件をチェックするための機能です。

アサーションについて

アサーションはデバッグ時に使用される機能で、
特定の条件が想定通りの結果になっていることを確認することができます。
想定外の結果となった場合は AssertionErrorがスローされます。

アサーションはデフォルト状態ではオフになっているため、
オンにしたい場合は実行時に明示的にオプションを指定する必要があります。

アサーション構文

アサーションを実装するには assertキーワードを使用します。

(アサーション構文 メッセージなしの場合)
assert 条件式;
(アサーション構文 メッセージありの場合)
assert 条件式 : メッセージ;

条件式にはtrueとなる式を指定します。
アサーションの条件式がfalseを返すと、java.lang.AssertionErrorがスローされます。

アサーション機能はデフォルト状態ではオフになっています。
アサーションを有効にして実行したい場合は、-eaオプションを指定して実行します。

(アサーションを有効にしてAssertionSampleクラスを実行する例)
java -ea AssertionSample
【javaコマンドのアサーションに関するオプション】
オプション意味
-eaアサーションを有効にして実行する
-daアサーションを無効にして実行する
(デフォルト)

アサーションサンプル

アサーションのサンプルです。
-eaオプションを指定して実行した時はアサーションエラーが発生します。

(AssertionSample.java)

public class AssertionSample {
  public static void main(String[] args) {
    int a = 0;
        
    //aが1以上であることをチェック
    assert a >= 1 : "aの値が1以上ではありません。";

    System.out.println(a);
  }
}
(実行結果)※-eaオプションを指定して実行した場合
C:\>java -ea AssertionSample Exception in thread “main” java.lang.AssertionError: aの値が1以上ではありません。 at AssertionSample.main(AssertionSample.java:6)
(実行結果)※オプションなしで実行した場合
C:\>java AssertionSample 0

アサーションのまとめ

  • デバッグ時に特定の条件が正しい結果となっているか確認するために使用する機能
  • アサーションの条件がfalseを返した場合は AssertionErrorがスローされる
  • アサーションを有効にして実行したい時は、-eaオプションを指定する必要がある

コメント

タイトルとURLをコピーしました