Lernpfad:Objektorientierte Programmierung mit Java/Systematisch Fehler suchen: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 6: Zeile 6:


== Niveau 1: Versuch und Irrtum ==
== Niveau 1: Versuch und Irrtum ==
Anfänger gehen zur Fehlersuche häufig nach dem Versuch-und-Irrtum-Prinzip vor. Dafür startest du das Programm und prüfst, ob es das Erwartete Ergebnis produziert. Ist dies nicht der Fall, dann wird im Programm etwas dort geändert, wo der Fehler vermutet wird. Dann wird wieder getestet, ob das Ergebnis nun der Erwartung entspricht.  
Anfänger gehen zur Fehlersuche häufig nach dem Versuch-und-Irrtum-Prinzip vor. Dafür startest du das Programm und prüfst, ob es das erwartete Ergebnis produziert. Ist dies nicht der Fall, dann wird im Programm etwas dort geändert, wo der Fehler vermutet wird. Dann wird wieder getestet, ob das Ergebnis nun der Erwartung entspricht.  


Dieses Vorgehen ist sehr Zeitaufwändig und oft frustrierend, da du nur rätst, wo der Fehler liegt. Da du als Anfänger noch nicht weißt, wo typische Fehlerquellen liegen, suchst du oft an der falschen Stelle und im schlimmsten Fall baust du neue Fehler ein.  
Dieses Vorgehen ist sehr zeitaufwändig und oft frustrierend, da du nur rätst, wo der Fehler liegt. Da du als Anfänger noch nicht weißt, wo typische Fehlerquellen liegen, suchst du oft an der falschen Stelle und im schlimmsten Fall baust du neue Fehler ein.  


Du solltest möglichst schnell versuchen, auf dem nächsten Niveau zu arbeiten.   
Du solltest möglichst schnell versuchen, auf dem nächsten Niveau zu arbeiten.   
Zeile 15: Zeile 15:
Etwas gezielter nach Fehlern suchen kannst du, indem du in deinem Programm Ausgaben auf der ''Kommandozeile'' machst. In der Informatik nennt man das ''Logging''.  
Etwas gezielter nach Fehlern suchen kannst du, indem du in deinem Programm Ausgaben auf der ''Kommandozeile'' machst. In der Informatik nennt man das ''Logging''.  


Die einfachste Variante des Loggings in Java erhältst du mit <code>System.out.println(String)</code>. Dieser Befehl gibt einen String auf der Kommandozeile (oder ''Konsole'') aus. So kannst du zum Beispiel den Wert einer Variablen zu einem bestimmten Zeitpunkt ausgeben lassen:
Die einfachste Variante des Loggings in Java erhältst du mit <code>System.out.println(String)</code>. Dieser Befehl gibt einen String auf der Kommandozeile (oder ''Konsole'') aus. So kannst du insbesondere den Wert einer Variablen zu einem bestimmten Zeitpunkt ausgeben lassen:


<syntaxhighlight lang="java" lines=1 highlight="3">
<syntaxhighlight lang="java" lines=1 highlight="3">
Zeile 28: Zeile 28:
Außerdem müssen alle <code>println</code>-Befehle von Hand wieder gelöscht werden. Das vergisst man leicht.
Außerdem müssen alle <code>println</code>-Befehle von Hand wieder gelöscht werden. Das vergisst man leicht.


Für die Fehlersuche ist diese Methode nur geeignet, wenn auf die Schnelle der Wert einer bestimmten Variablen geprüft werden soll, oder welche Alternative in einer Bedingten Anweisung eingeschlagen wird. Für alles andere solltest du das Werkzeug auf Niveau 3 nutzen.  
Für die Fehlersuche ist diese Methode nur geeignet, wenn auf die Schnelle der Wert einer bestimmten Variablen geprüft werden soll, oder welche Alternative in einer bedingten Anweisung eingeschlagen wird. Für alles andere solltest du das Werkzeug auf Niveau 3 nutzen.  


{{Info:Start}}
{{Info:Start}}
Es ist üblich bei der  Programmierung das Logging dennoch einzusetzen, um die Fehlersuche in Zusammenarbeit mit den Nutzern zu erleichtern. Viele Programme produzieren ''Logs'', in denen wichtige Ereignisse stehen. Wenn ein Nutzer einen Fehler findet kann er das Log an den Entwickler schicken und diesem dadurch die Fehlersuche erleichtern.
Es ist üblich bei der  Programmierung das Logging dennoch einzusetzen, um die Fehlersuche in Zusammenarbeit mit den Nutzern zu erleichtern. Viele Programme produzieren ''Logs'', in denen wichtige Ereignisse stehen. Wenn ein Nutzer einen Fehler findet, kann er das Log an den Entwickler schicken und diesem dadurch die Fehlersuche erleichtern.
{{Info:End}}
{{Info:End}}


== Niveau 3: Der Debugger ==
== Niveau 3: Der Debugger ==
Alle großen Entwicklungsumgebung haben mittlerweile einen ''Debugger'' eingebaut. So auf BlueJ. Mit diesem Werkzeug kann ein Programm systematisch und gezielt auf Fehler analysiert werden.  
Alle großen Entwicklungsumgebung haben mittlerweile einen ''Debugger'' eingebaut. So auf {{BlueJ}}. Mit diesem Werkzeug kann ein Programm systematisch und gezielt auf Fehler analysiert werden.  


Ein Debugger erlaubt es dir, zur Laufzeit (also während das Programm ausgeführt wird) alle Variablen zu inspizieren. Dazu kann das Programm an beliebigen Stellen abgehalten werden.  
Ein Debugger erlaubt es dir, zur Laufzeit (also während das Programm ausgeführt wird) alle Variablen zu inspizieren. Dazu kann das Programm an beliebigen Stellen abgehalten werden.  
Zeile 42: Zeile 42:


== Fragen und Antworten finden ==
== Fragen und Antworten finden ==
{{Inhalt/Übersicht}}
8.581

Bearbeitungen