Fehler Flashcards
Welche Erwartungen hat man an ein Programm?
Das Programm erzeugt korrekte Ergebnisse für alle erlaubten Eingaben; gibt sinvolle Fehlermeldungen bei unerlaubten Eingaben aus; Hardware und Systemsoftware funktionieren korrekt; Terminierung nach Entdecken eines Fehlers ist erlaubt
Welche Ursachen für Fehler gibt es?
Unachtsamkeit bei Programmierung; Ungenauigkeiten in der Spezifikation; Abstimmungsprobleme bezüglich der Schnittstellen unterschiedlicher Module; Unvollständige Programme; unerwartete / fehlerhafte Eingaben und Argumente etc.
Welche Fehlerarten gibt es?
Compiler Fehler, Linker-Fehler, Laufzeit-Fehler, Logik-Fehler
Was sind Compiler-Fehler?
Falsche Syntax, Typfehler
Was sind Linker-Fehler?
Nicht gefundene Bibliothek, falsche Bibliothekversion
Was sind Laufzeit-Fehler?
Crash durch Rechner, Exception durch Bibliothek / Programm
Was sind Logik-Fehler?
Falsche Ergebnisse / Ausgaben; diese können meist erst viel später nach der Programmausführung entdeckt werden; können nicht vom Compiler gefunden werden
Von was wird der Typ im Allgemeinen geprüft?
Vom Compiler
Wie geht man bei fehlerhaften Argumenten um?
Beim Aufruf prüfen; Rückgabe der Fehlerwerte betrachten; Fehlerstatus betrachten; Exception auslösen
Was ist Exception?
Eine Ausnahmebehandlung, die Fehler in der try-catch-Methode behandelt. Sie “wirft” die Fehlermeldung in Form eines Fehlerobjekts an den zuständigen Exception-Handler im catch-Block weiter, welcher dann den Fehler behandelt
Was sind die Vorteile der Exception-Behandlung?
Die Behandlung kann nicht vergessen werden, da sonst ggf. das Programm terminiert; nahezu jede Fehlerart kann damit behandelt werden
Was sind die Nachteile der Exception-Behandlung?
Reaktion auf Fehler bleibt immer noch Aufgabe des Programmierers; normaler Programmablauf muss unterbrochen werden; Fehler sollte früh behandelt werden, damit der Weg zum normalen Programmablauf leicht bleibt
Was sind Bugs?
(Logik-)Fehler/Programmfehler, die ein unerwartetes Verhalten verursachen
Was ist eine Spezifikation?
Eine Beschreibung bzw Dokumentation über die Anforderungen bzw Erwartungen eines Programms z.B.
Wie korrigiert man Bugs?
Mithilfe von Debugging