JAVAアサーション - アサート

簡単な紹介

アサーションはでJavaを使用しているassert達成するためのステートメント。アサーションを行う場合には、正しいと考えられています。それが失敗した場合、JVMは呼ばスローされますAssertionError間違って。これは主に開発中の目的をテストするために使用されています。

assert 声明は、ブール式と組み合わせて使用​​される2つの異なる方法で書くことができます。

assert expression;
assert expression1 : expression2;
复制代码

public class AssertTest {
    public static void main(String[] args) {
    
        int value = 15;
        assert value >= 20 : " Underweight";
        System.out.println("value is " + value);
    }
}
复制代码

出力:

value is 15
复制代码

私たちは見ることができますassertJavaプログラムの実行がすべてのassert文が無視されることをデフォルトのアサーション・チェックによって開始されていない場合ので、文は動作しませんでした。

あなたはアサーションチェックを有効にしたい場合は、使用する必要がある-enableassertionsか、-eaJVMパラメータが開くように、手動でアサーションチェックを無視したい場合は、使用することができます-disableassertionsまたは-da表明文を無視するJVMパラメータ。

コマンドの実行java -ea AssertTestオープニングアサーションの後に出力を:

Exception in thread "main" java.lang.AssertionError:  Underweight
	at AssertTest.main(AssertTest.java:11)
复制代码

書き込みに促さ最初の構文エラーメッセージを使用します:

public class AssertTest {
    public static void main(String[] args) {

        int value = 15;
        assert value >= 20;
        System.out.println("value is " + value);
    }
}
复制代码

出力:

Exception in thread "main" java.lang.AssertionError
	at AssertTest.main(AssertTest.java:11)
复制代码

なぜアサーション

  1. コードが実際に到達不能に到達していないようだということを確認してください
  2. ときに正しい仮定を確認してください
  3. ことを確認するために、分岐が到達することはできませんswitch casedefault
  4. オブジェクトの状態を確認します
  5. のメソッドをテストし始めました
  6. メソッド呼び出しをテストした後

注意事項

チェックロジック不可能主に使用アサーション。例えば、彼らは実行の終了後にコードの開始前に、所望の動作状態や状態のコードをチェックするために使用することができます。そして、異なる主張を扱う一般的な例外/エラーは、通常、実行時に無効になっています。

どこにアサーションの使用

  1. プライベートメソッドをパラメータ。唯一のコードの開発者が提供するプライベート・パラメータ、開発者はパラメータについての彼らの仮定をチェックすることもできます
  2. 支店の条件、例えば、switch声明
  3. メソッドの先頭に条件

アサーションを使用しない場合は

  1. アサーションは、エラー/例外メッセージを交換するために使用すべきではありません
  2. アサーションはには適用されません。public彼らは、ユーザによって提供することができるよう、プロセスのパラメータ
  3. アサーションは、コマンドラインパラメータに使用すべきではありません

概要

  1. アサーションは、デバッグアサーション失敗がスローされます、モードAssertionErrorでのみ開発およびテスト段階ではアサーションを有効
  2. 回復可能なエラーのアサーションを使用することはできませんが、例外をスローする必要があります
  3. JAVAはほとんど使用されない、より良いアプローチは、ライトユニットテストにあるアサート


参考文献:

~~~~~~~~GeeksforGeeks - Javaでアサーション

~~~~~~~~遼雪峰JAVAチュートリアル - アサーションを使用して

おすすめ

転載: juejin.im/post/5e0eaa0de51d4540e47ca159