Java でのアサーション

アサーションを使用すると、プログラム内で行われた仮定の正しさをテストできます。アサーションは、 主張する Java でのステートメント。アサーションの実行中、それは真実であると信じられます。失敗すると、JVM は次のエラーをスローします。 アサーションエラー。 主に開発時のテスト目的で使用されます。

主張する ステートメントはブール式で使用され、次のように記述できます。 2つの異なる方法

最初の方法:

 assert expression; 

2番目の方法:

 assert expression1 : expression2; 

例:

ジャワ




// Java program to demonstrate syntax of assertion> import> java.util.Scanner;> class> Test {> > public> static> void> main(String args[])> > {> > int> value => 15> ;> > assert> value>=>> ;> > System.out.println(> 'value is '> + value);> > }> }>

出力

value is 15 

アサーションを有効にした後:

出力:

Exception in thread 'main' java.lang.AssertionError: Underweight 

アサーションの有効化

デフォルトでは、アサーションは無効になっています。与えられたコードを実行する必要があります。 Java ソース コードでアサーション ステートメントを有効にするための構文は次のとおりです。

 java –ea  Test 

または

 java –enableassertions  Test 

ここで、Test はファイル名です。

アサーションの無効化

Java でアサーションを無効にする構文は次のとおりです。

 java –da  Test 

または

 java –disableassertions  Test 

ここで、Test はファイル名です。

アサーションを使用する理由

プログラマが自分の仮定が間違っているかどうかを確認したい場合はどこでも。

  • 到達不能に見えるコードが実際に到達不能であることを確認するため。
  • コメントに書かれた仮定が正しいことを確認するため。
if ((x & 1) == 1) { } else // x must be even { assert (x % 2 == 0); } 
  • デフォルトのスイッチケースに達していないことを確認するため。
  • オブジェクトの状態を確認します。
  • メソッドの最初に
  • メソッド呼び出し後。

アサーションと通常の例外処理

アサーションは主に、論理的に不可能な状況をチェックするために使用されます。たとえば、コードが実行を開始する前に予期される状態、または実行が終了した後の状態を確認するために使用できます。通常の例外/エラー処理とは異なり、アサーションは通常、実行時に無効になります。

アサーションを使用する場所

  • プライベートメソッドへの引数。プライベート引数は開発者のコ​​ードによってのみ提供されるため、開発者は引数に関する自分の仮定を確認する必要がある場合があります。
  • 条件付きのケース。
  • メソッドの開始時の条件。

アサーションを使用してはいけない場所

  • アサーションはエラー メッセージを置き換えるために使用しないでください。
  • ユーザーが提供する可能性があるため、パブリック メソッドの引数をチェックするためにアサーションを使用しないでください。ユーザーが提供したエラーを処理するには、エラー処理を使用する必要があります。
  • アサーションはコマンドライン引数では使用しないでください。

例:

ジャワ




// Java program to demonstrate assertion in Java> public> class> Example {> > public> static> void> main(String[] args)> > {> > int> age => 14> ;> > assert> age <=> 18> :> 'Cannot Vote'> ;> > System.out.println(> 'The voter's age is '> + age);> > }> }>

出力

The voter's age is 14