Das assert-Schlüsselwort in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden von assert als Bedingung in Java
  2. Verwendung von assert condition : expression in Java
  3. um zu überprüfen, ob der nicht erreichbare Teil des Codes tatsächlich nicht erreichbar ist
  4. bei internen Invarianten
Das assert-Schlüsselwort in Java

In Java können Sie das Schlüsselwort assert verwenden, um Assertionen zu aktivieren. Diese Funktion wird verwendet, um unsere Annahmen über das Programm zu testen. Es gibt zwei Möglichkeiten, wie wir Assertionen in Java verwenden können, und wir werden diese in diesem Artikel behandeln.

Verwenden von assert als Bedingung in Java

Eine Assertion ist der schnellste und einfachste Weg, um Fehler in einem Programm zu erkennen und zu beheben. Es wird angenommen, dass eine Assertion wahr ist, wenn sie ausgeführt wird. Andernfalls würde ein Assertionsfehler ausgelöst, wenn er falsch ist.

Die Bedingung assert ist hier ein boolescher Ausdruck.

public class JavaAssertCheck {
  public static void main(String args[]) {
    String[] names = {"John", "Mary", "David"};
    assert names.length == 2;
    System.out.println("There are " + names.length + "  names in an array");
  }
}

Ausgabe

There are 3  names in an array

Die Assertionen sind deaktiviert; Daher wird dieses Programm kompiliert und ausgeführt, ohne dass ein Fehler angezeigt wird. Aber wenn die Assertionen aktiviert sind und die Bedingung falsch ist, wirft JVM sofort einen AssertionError und stoppt das Programm.

Exception in thread
    "main" java.lang.AssertionError at JavaAssertCheck.main(JavaAssertCheck.java : 5)

Verwendung von assert condition : expression in Java

Bei diesem Assertion-Format wird der Ausdruck an den Konstruktor des AssertionError übergeben, wenn die Bedingung als falsch ausgewertet wird. Wenn die Assertionen aktiviert sind und die unten gezeigte Annahme falsch ist, wird der AssertionError mit dem übergebenen Ausdruck als Detailmeldung angezeigt.

Diese Nachricht hilft bei der korrekten Identifizierung des Fehlers und der Behebung des Fehlers.

public class JavaAssertCheck {
  public static void main(String args[]) {
    String[] names = {"John", "Mary", "David"};
    assert names.length == 2 : "The assertion condition is false.";
    System.out.println("There are " + names.length + "  names in an array");
  }
}

Ausgabe

Exception in thread "main" java.lang.AssertionError: The assertion condition is false.
	at JavaAssertCheck.main(JavaAssertCheck.java:5)

Hier zeigt es bestimmte Bedingungen, unter denen wir das Konzept der Assertion in Java verwenden können.

um zu überprüfen, ob der nicht erreichbare Teil des Codes tatsächlich nicht erreichbar ist

public void unReachableCode() {
  System.out.println("Unreachable Code");
  return;
  assert true;
}

Wenn Sie eine Annahme an einer Stelle platzieren, von der Sie dachten, dass der Flow nicht erreicht werden sollte, gibt diese Funktion beim Entfernen der nicht erreichbaren Anweisung einen Fehler aus.

bei internen Invarianten

Bevor Behauptungen verfügbar waren, verwendeten viele Programmierer Kommentare, um ihre Annahmen über das Programm zu dokumentieren. Wie unten in der mehrwegigen if-Anweisung gezeigt, möchten wir vielleicht etwas schreiben, das unsere Annahme über den else-Fall erklärt.

public class JavaAssertCheck {
  public static void main(String args[]) {
    int n = 37;
    if (n % 3 == 0)
      System.out.println("n % 3 == 0");
    else if (n % 3 == 1)
      System.out.println("n % 3 == 1");
    else
      assert n % 3 == 2 : "Assumption is false. " + n;
  }
}

Assertions sollten in öffentlichen Methoden nicht verwendet werden, um die übergebenen Argumente zu überprüfen, da der Benutzer diese selbst angeben kann; daher kann es fehlschlagen und zu einem AssertionError führen. Verwenden Sie KEINE Assertionen, um die Aufgabe zu verwalten, die Ihre Anwendung benötigt, um ordnungsgemäß zu funktionieren. Ein Beispiel ist das Entfernen von Nullelementen aus einer Liste.

In der Regel sollte der in einer Assertion enthaltene Ausdruck frei von Nebenwirkungen sein.

Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn