Erkennen von Fehlern bei ungültigen Ausdrücken
In diesem Schritt werden wir untersuchen, was passiert, wenn wir versuchen, Ausdrücke auszuwerten, die in Java nicht gültig sind, und wie der Compiler uns hilft, diese Fehler zu erkennen. Das Verständnis gängiger Fehler ist ein wichtiger Teil des Lernens jeder Programmiersprache.
Java ist eine stark typisierte Sprache, was bedeutet, dass der Datentyp von Bedeutung ist. Boolesche Ausdrücke erfordern speziell Operanden, die verglichen oder zu einem booleschen Wert ausgewertet werden können. Das Versuch, inkompatible Datentypen in einem booleschen Ausdruck zu verwenden, führt zu einem Kompilierungsfehler.
Lassen Sie uns absichtlich einen Fehler in unser HelloJava.java
-Programm einfügen, um zu sehen, wie der Compiler reagiert.
-
Öffnen Sie die Datei HelloJava.java
im WebIDE-Editor.
-
Ändern Sie den Code, um einen ungültigen Vergleich einzuschließen. Beispielsweise versuchen wir, einen booleschen Wert mit einer Ganzzahl zu vergleichen:
public class HelloJava {
public static void main(String[] args) {
int age = 25;
boolean isStudent = true;
// This line will cause a compilation error
// boolean invalidComparison = (isStudent == age);
System.out.println("Age: " + age);
System.out.println("Is student: " + isStudent);
}
}
Wir haben die Zeile, die den Fehler verursachen wird, vorerst auskommentiert, aber wir werden sie im nächsten Schritt wieder einkommentieren. Die auskommentierte Zeile boolean invalidComparison = (isStudent == age);
versucht, eine boolean
-Variable (isStudent
) mit einer int
-Variable (age
) mithilfe des Gleichheitsoperators (==
) zu vergleichen. Java erlaubt diesen direkten Vergleich nicht, da boolean
und int
verschiedene Datentypen sind, die auf diese Weise nicht sinnvoll verglichen werden können.
-
Speichern Sie die Datei (Strg+S oder Cmd+S).
-
Lassen Sie uns nun die Zeile, die den Fehler verursachen wird, einkommentieren. Ändern Sie den Code wie folgt:
public class HelloJava {
public static void main(String[] args) {
int age = 25;
boolean isStudent = true;
// This line will cause a compilation error
boolean invalidComparison = (isStudent == age);
System.out.println("Age: " + age);
System.out.println("Is student: " + isStudent);
System.out.println("Invalid comparison result: " + invalidComparison);
}
}
-
Speichern Sie die Datei erneut.
-
Versuchen Sie, das Programm im Terminal zu kompilieren:
javac HelloJava.java
Sie sollten eine Fehlermeldung des Java-Compilers sehen. Die genaue Meldung kann je nach Java-Version etwas variieren, aber sie wird auf einen Typfehler oder inkompatible Datentypen hinweisen.
~/project/HelloJava.java:7: error: incomparable types: boolean and int
boolean invalidComparison = (isStudent == age);
^
1 error
Diese Fehlermeldung gibt Ihnen den Dateinamen (HelloJava.java
), die Zeilennummer (7) und eine Beschreibung des Fehlers ("incomparable types: boolean and int"). Dies ist der Compiler, der Ihnen hilft, Fehler zu erkennen, bevor Sie das Programm einmal ausführen.
-
Um den Fehler zu beheben und das Programm wieder kompilierbar zu machen, müssen Sie die ungültige Zeile entfernen oder auskommentieren. Ändern Sie den Code zurück zur Version, in der die Zeile auskommentiert ist:
public class HelloJava {
public static void main(String[] args) {
int age = 25;
boolean isStudent = true;
// This line will cause a compilation error
// boolean invalidComparison = (isStudent == age);
System.out.println("Age: " + age);
System.out.println("Is student: " + isStudent);
}
}
-
Speichern Sie die Datei.
-
Kompilieren Sie das Programm erneut:
javac HelloJava.java
Diesmal sollte die Kompilierung erfolgreich sein, und Sie sollten keine Fehlermeldungen sehen.
Das Verständnis von Kompilierungsfehlern und das Lesen dieser Meldungen ist eine entscheidende Fähigkeit für jeden Programmierer. Der Java-Compiler ist ein leistungsfähiges Werkzeug, das Ihnen hilft, viele gängige Fehler bereits in einem frühen Stadium des Entwicklungsprozesses zu finden.