Video: JAVA Grundkurs #11 - Fehler und Exceptions [Tutorial] 2024
Logische Fehler in der Java-Programmierung können extrem schwierig zu finden sein, da sie keine Codierungsprobleme oder Fehler bei der Verwendung von Java-Sprachelementen widerspiegeln. Der Code läuft perfekt wie geschrieben - er führt einfach nicht die Aufgabe aus, die Sie erwartet haben.
Infolgedessen können logische Fehler die schwersten zu findenden Fehler sein. Sie müssen Zeit mit der Durchsuchung Ihres Codes verbringen und nach einem genauen Grund für den Fehler suchen. Hier ist eine Liste der häufigsten logischen Fehler, denen Java-Entwickler begegnen:
-
Falsche Operatorpriorität verwenden: Die Reihenfolge, in der Java Operatoren interpretiert, ist wichtig. Anwendungen führen oft zu falschen Ergebnissen, da der Entwickler keine Klammern an den richtigen Stellen enthält.
Beispiel: Das folgende Beispiel erzeugt Ausgaben von 11, 13, 9 und 8 aus den vier Variablen, alle aufgrund der Position (oder des Fehlens) der Klammern.
public class OperatorError {public statisch void main (String [] args) {// Erstellen Sie einige Variablen. int MyVar1 = 5 + 4 * 3/2; int MyVar2 = (5 + 4) * 3/2; int MyVar3 = (5 + 4) * (3/2); int MyVar4 = (5 + (4 * 3)) / 2; // Gib das Ergebnis aus. System. aus. println ("MyVar1:" + MyVar1 + "nMyVar2:" + MyVar2 + "nMyVar3:" + MyVar3 + "nMyVar4:" + MyVar4);}}
-
Die falsche Anzahl definieren: Möglicherweise der häufigste logische Fehler zählt die Dinge falsch. Die Leute sind daran gewöhnt, mit 1 zu zählen, und Computer fangen oft mit 0 an. Es ist also nicht ungewöhnlich, dass Anwendungen genau eine Aufgabe ausführen, egal ob diese Aufgabe eine Schleife ausführt oder mit einer Sammlung von Elementen arbeitet.
-
Angenommen, eine Bedingung ist wahr, wenn sie nicht lautet: Entwickler werden häufig die Anweisung betrachten, die zum Definieren einer Bedingung verwendet wird, und nehmen an, dass die Anweisung wahr (oder falsch) ist, ohne die Logik zu verifizieren. der Aussage.
Die Verwendung einer oder einer Anweisung, wenn Sie wirklich eine Anweisung und eine Anweisung verwenden wollten, kann ebenfalls Probleme verursachen. Die Entscheidungslogik führt bei vielen Entwicklern, selbst bei erfahrenen Entwicklern, zu vielen Problemen. Überprüfen Sie immer Ihre Annahmen für bedingte Aussagen.
-
Verlassen auf Gleitkommazahlen für Präzisionsarbeit: Sie können nicht davon ausgehen, dass Fließkommazahlen eine bestimmte Zahl liefern. Dies bedeutet, dass Sie eine Gleitkommazahl nicht auf Gleichheit mit einem bestimmten Wert prüfen können - Sie müssen stattdessen einen Wertebereich verwenden, um die Prüfung durchzuführen. Fließkommazahlen sind in Java immer eine Annäherung.
-
Verlassen Sie sich auf Integer-Werte, um Werte zu messen: Ganzzahlen eignen sich hervorragend zum Zählen von Elementen, weil sie präzise sind.Viele mathematische Integer-Operationen erzeugen jedoch ungenaue Ergebnisse. Das gilt besonders für die Division, weil der Rest immer aufhört. (Die Zahl wird abgerundet.) Verwenden Sie Gleitkommawerte oder den BigDecimal-Objekttyp, wenn Sie etwas messen müssen und Präzision wichtig ist.
-
Ein Semikolon falsch plazieren: Es ist möglich, Java-Code zu erstellen, der trotz eines Semikolons an der falschen Stelle kompiliert und einwandfrei funktioniert. Hier ein Beispiel:
public class ForLoopError {public static void main (String [] args) {// Deklariere die Variable. int Graf; // Erstellen Sie die Schleife. für (Anzahl = 1; Anzahl <= 10; Anzahl ++); {// Gib das Ergebnis aus. System. aus. println ("Count is" + Count);}}}
Beachten Sie, dass das Semikolon unmittelbar nach der for-Anweisung angezeigt wird und nicht nach dem Codeblock, wie es sollte. Anstatt einzelne Werte von Count zu drucken, druckt dieses Beispiel einen einzelnen Satz, der besagt, dass Count 11 ist.