Java behaupten

Java behaupten
Die Behauptung in Java ist eine Erklärung, die auf dem reservierten Wort basiert, behauptet, einen booleschen Ausdruck und endet mit einem Semikolon. Es kommt vor, dass bestimmte Bedingungen in einem Programm nicht ordnungsgemäß funktionieren können. Die Assert -Erklärung prüft, ob solche Bedingungen in einem Programm vorhanden sind.

Es wird erwartet. Wenn die Assert -Anweisung verwendet wird und die Bedingung nicht falsch erfolgt, wird das Programm ohne Probleme fortgesetzt. Wenn die Bedingung falsch auftritt, wird eine Fehlermeldung gemeldet. Eine solche Überprüfung beinhaltet einen booleschen Ausdruck. Natürlich darf die Behauptungscodierung nicht unbedingt das behauptete reservierte Wort beinhalten. Es gibt viele gute Programme, die die Assertions -Codierung ohne das reservierte Wort durchführen. Die Verwendung des asserd reservierten Wortes bringt jedoch eine bestimmte Funktion in der Programmierung heraus, wodurch das Programm konstruktiver wird.

Betrachten Sie das folgende Codesegment:

Ganzzahl in = null;
if (in != null)
System.aus.println ("Mach das.");
// andere Aussagen
anders
System.aus.println ("Test fehlgeschlagen.");

Derzeit ist der Wert von „in“ null, aber es kann jede Ganzzahl sein. Der If-Bock wird ausgeführt, wenn er nicht null ist, was als gut angesehen werden sollte. Wenn es null (falsch) ist, wird der elende Teil der Anweisung If-Compound ausgeführt, wobei das Problem gemeldet wird.

Jetzt kann eine Assert-Anweisung die meisten Teile der IF-Compound-Anweisung ersetzen. Dies ist eine klassische Verwendung der Assert -Anweisung. Eine weitere klassische Verwendung besteht darin, zu überprüfen, ob die Grenze des Ergebniss einer Berechnung nicht erreicht wurde, wie die folgende Beschreibung darstellt:

Die Geschwindigkeit eines sich bewegenden Objekts wird gegeben,

s = d/t

Wo d Entfernung ist, ist t die Zeit und S das Ergebnis (Geschwindigkeit). Es kann erwünscht werden, dass die Geschwindigkeit des Objekts unterhalb der Schallgeschwindigkeit bleibt und daher keine Stoßwellen verursacht. In diesem Fall kann die Assert -Anweisung verwendet werden, um zu behaupten, dass die Geschwindigkeit unter der Schallgeschwindigkeit liegt, was 343 m/s beträgt.

Ein Programmcode für dieses Problem ohne die Assertion -Anweisung kann wie folgt sein:

Doppel d = 15, t = 3, s;
s = d / t;
Wenn (s < 343)
System.aus.println ("Mach das.");
// andere Aussagen
anders
System.aus.println ("Test fehlgeschlagen.");

Behauptungssyntaxe in Java

In Java befinden sich die Behauptungssyntaxe in zwei Formen. Sie sind:

Expression1 Assert1;
Und
Assert Expression1: Expression2;

Für die erste Option (Anweisung) ist Expression1 ein boolescher Ausdruck. HINWEIS: In einem booleschen Ausdruck ist == gleich. Für die zweite Option (Anweisung) ist Expression1 immer noch ein boolescher Ausdruck; Expression2 führt jedoch zu einem Wert, der boolesch (wahr oder falsch) sein kann oder nicht). Der Wert darf jedoch nicht nichtig sein. Der Zweck von Expression2 besteht darin, den Fehler an den Programmierer oder den Benutzer zu senden. In dieser zweiten Option trennt der Dickdarm die beiden Ausdrücke. Der Dickdarm gilt nicht für die erste Option.

Entweder bedeutet Aussageerklärung letztendlich wahr oder falsch aufgrund des booleschen Ausdrucks. Wenn es wahr ist, setzt sich das Programm wie erwartet fort. Wenn es falsch ist, sollte der Fehler gemeldet werden.

Assert Expression1
Validierung

Der Beispielcode für die obige Validierung wird hier für schnelle (visuelle) Referenz wiederholt:

Ganzzahl in = null;
if (in != null)
System.aus.println ("Mach das.");
// andere Aussagen
anders
System.aus.println ("Test fehlgeschlagen.");

"Assert Expression1" kann für diesen Code wie folgt verwendet werden:

Ganzzahl in = null;
durchsetzen != null;
System.aus.println ("Mach das.");
// andere Aussagen

Wenn die Behauptung für das Programm aktiviert ist und die Behauptung zu False wie für diese bestimmte Codierung geltend macht, werden die nachstehenden Anweisungen unter der Assert -Anweisung nicht ausgeführt. und die Java Virtual Machine (Betriebssystem) stellt eine Fehlermeldung aus. Wenn die Behauptung für das Programm nicht aktiviert ist, werden die folgenden Aussagen der Assert -Anweisung ausgeführt, obwohl er falsch ist. Sehen Sie, wie Sie die Behauptung für ein Programm unten aktivieren.

Für diese Assert -Codierung erlaubt der Programmierer dem JVM, mit Fehlernachrichten vollständig aufgrund der Abwesenheit von Expression2 zu handeln.

Verhinderung der Reichweite der Grenze

Der Beispielcode, um die oben genannten Einschränkungen zu verhindern, wird hier für eine schnelle (visuelle) Referenz wiederholt:

Doppel d = 15, t = 3, s;
s = d / t;
Wenn (s < 343)
System.aus.println ("Mach das.");
// andere Aussagen
anders
System.aus.println ("Test fehlgeschlagen.");

"Assert Expression1" kann für diesen Code wie folgt verwendet werden:

Doppel d = 15, t = 3, s;
s = d / t;
Assert s < 343;
System.aus.println ("Mach das.");
// andere Aussagen

Wenn die Behauptung für das Programm aktiviert ist, werden für diese bestimmte Codierung die folgenden Assert -Anweisungen ausgeführt, und die Java Virtual Machine (OS) würde keine Fehlermeldung ausstellen. Da das Ergebnis von 5 weniger als 343 ist. Wenn die Behauptung nicht aktiviert ist, werden die folgenden Anweisungen weiterhin ausgeführt, da sie ignoriert werden, auch wenn sie falsch ist. Sehen Sie, wie Sie die Behauptung für ein Programm unten aktivieren.

Für diese Assert -Codierung ermöglicht der Programmierer dem JVM immer noch, mit Fehlernachrichten vollständig umzugehen. Wegen des Fehlens von Expression2.

Ausdruck2
Validierung

Der Beispielcode für die obige Validierung wird hier für schnelle (visuelle) Referenz wiederholt:

Ganzzahl in = null;
if (in != null)
System.aus.println ("Mach das.");
// andere Aussagen
anders
System.aus.println ("Test fehlgeschlagen.");

Expression2 dient zur Fehlerberichterstattung. Der elende Teil dieser If-Compound-Anweisung dient der Fehlerberichterstattung. Eine entsprechende Verwendung der zweiten Option Assert -Anweisung für diese Codierung kann wie folgt sein:

Ganzzahl in = null;
durchsetzen != null: in;
System.aus.println ("Mach das.");
// andere Aussagen

Wenn die Behauptung für das Programm aktiviert ist, werden für diese bestimmte Codierung die folgenden Assert -Anweisung nicht ausgeführt, und das Java Virtual Machine (Betriebssystem) wird eine Fehlermeldung ausgestellt. Dieses Mal verwendet die Fehlermeldung den Wert der Variablen in. Wenn die Behauptung nicht aktiviert ist, werden die unter der Assert -Anweisung untersuchten Anweisungen ausgeführt, obwohl die ASSERT -Anweisung zu False führt. Sehen Sie, wie Sie die Behauptung für ein Programm unten aktivieren.

Für diese Assert -Codierung beeinflusst der Programmierer aufgrund des Vorhandenseins von Expression2 (IN) die JVM in seinem Umgang mit Fehlernachrichten - siehe Details unten.

Verhinderung der Reichweite der Grenze

Der Beispielcode, um die oben genannten Einschränkungen zu verhindern, wird hier für eine schnelle (visuelle) Referenz wiederholt:

Doppel d = 15, t = 3, s;
s = d / t;
Wenn (s < 343)
System.aus.println ("Mach das.");
// andere Aussagen
anders
System.aus.println ("Test fehlgeschlagen.");

Expression2 dient zur Fehlerberichterstattung. Der elende Teil dieser If-Compound-Anweisung dient der Fehlerberichterstattung. Eine entsprechende Verwendung der zweiten Option Assert -Anweisung für diese Codierung kann wie folgt sein:

Doppel d = 15, t = 3, s;
s = d / t;
Assert s < 343 : s;
System.aus.println ("Mach das.");
// andere Aussagen

Wenn die Behauptung für das Programm aktiviert ist, werden für diese bestimmte Codierung die folgenden Assert -Anweisungen ausgeführt, und die Java Virtual Machine (Betriebssystem) gibt keine Fehlermeldung aus. Da das Ergebnis von 5 weniger als 343 ist. Wenn das Ergebnis (Wert) von S gleich oder größer als 343 ist, beinhaltet die Fehlermeldung den Wert von s. Wenn die Behauptung nicht aktiviert ist, werden die folgenden Anweisungen weiterhin ausgeführt, da sie auch dann ignoriert werden, wenn sie zu Falsch führen. Sehen Sie, wie Sie die Behauptung für ein Programm unten aktivieren.

Für diese Assert -Codierung beeinflusst der Programmierer die JVM in seinem Umgang mit Fehlernachrichten aufgrund von Expression2 (s) - siehe Details unten.

Behauptung ermöglichen

Wenn ein Programm Assertions -Codierung hat, ist die ASSERT -Anweisung nur wirksam, um die Assertion -Anweisung zu respektieren, wenn das Programm aktiviert ist. Aktivieren der Assertion -Erklärung erfolgt nach dem Zusammenbau des Java -Programms in Bytecode. Dies geschieht in der Befehlszeile bei der Ausführung des Programms. Dies geschieht durch Einbeziehung der Switch -enableAsSSerions. Mit Schalter an der Befehlszeile bedeutet das - nicht „wegnehmen“; Es ist ein Bindestrich (Kugel).

Die Verwendung des Schalters arbeitet nur für die Ausführung des Programms. Wenn der Switch nicht verwendet wird, wird die Ausführung das nächste Mal, wenn das Programm aufgerufen wird.

In diesem Abschnitt wird nur der Validierungscode behandelt. Der Validierungscode mit der ersten Option Assert -Anweisung lautet:

Ganzzahl in = null;
durchsetzen != null;
System.aus.println ("Mach das.");
// andere Aussagen

Angenommen, dies befindet sich in der Main () -Methode der Hauptklasse und Datei, die als TheClass bezeichnet wird. Die Datei wird normalerweise mit dem Befehl zusammengestellt:

Javac Theclass.Java

Die Zusammenstellung sollte erfolgreich durchgeführt werden. Mit dem Schalter das resultierende Bytecode -Programm, TheClass.Klasse, wird dann in der Befehlszeile mit ausgeführt,

Java -enableasStions Theclass

Der Bericht (Ausgabe) ist:

Ausnahme im Thread "Haupt" Java.Lang.Assertionerror
In der Klasse.Haupt (TheClass.Java: 6)

Beachten Sie, dass der Wert Null, für die Variable, in der Ausgabe nicht erwähnt wird. Damit werden die Aussagen unter der Assert -Anweisung im Programm nicht ausgeführt.

Der Validierungscode mit der zweiten Option Assert -Anweisung, die „: in“ hat, lautet:

Ganzzahl in = null;
durchsetzen != null: in;
System.aus.println ("Mach das.");
// andere Aussagen

Angenommen, dies befindet sich in der Main () -Methode der Hauptklasse und Datei, die als TheClass bezeichnet wird. Die Datei wird mit dem Befehl zusammengestellt:

Javac Theclass.Java

Die Zusammenstellung sollte erfolgreich durchgeführt werden. Mit dem Schalter das resultierende Bytecode -Programm, TheClass.Klasse, wird in der Befehlszeile mit ausgeführt,

Java -enableasStions Theclass

Der Bericht (Ausgabe) ist:

Ausnahme im Thread "Haupt" Java.Lang.AsSertionError: NULL
In der Klasse.Haupt (TheClass.Java: 6)

Beachten Sie, dass der Wert null für die Variable, in der Ausgabe "in" in der Ausgabe als ": null" in der ersten Ausgabelinie erwähnt wird. Auf diese. Wenn der Switch, -EnableAsSerions in der Befehlszeile weggelassen wird, werden alle (oder alle) Anweisungen im Programm ignoriert. Der folgende Code wird weiterhin ausgeführt, auch wenn die Assert -Anweisungen (boolesche Ausdrücke) falsch sind.

Abschluss

Die Behauptung in Java ist eine Erklärung, die auf dem reservierten Wort basiert, behauptet, einen booleschen Ausdruck und endet mit einem Semikolon. Es kommt vor, dass bestimmte Bedingungen in einem Programm nicht ordnungsgemäß funktionieren können. Die Assert -Erklärung prüft, ob solche Bedingungen in einem Programm vorhanden sind.

Gute Beispiele für die Verwendung der Assert -Anweisung sind in der Validierung und zum Überprüfen, ob das Ergebnis einer Berechnung keine Grenze überschreitet. Es gibt zwei Formen der Assert -Anweisung: eine, die in der Fehlermeldung nicht hilft, und die andere, die in der Fehlermeldung hilft. Eine Behauptung in Java ist in der Befehlszeile für den kompilierten Bytecode mit dem Switch, -EnableAsSerions aktiviert.