Fehler Flashcards

1
Q

Welche Erwartungen hat man an ein Programm?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Ursachen für Fehler gibt es?

A

Unachtsamkeit bei Programmierung; Ungenauigkeiten in der Spezifikation; Abstimmungsprobleme bezüglich der Schnittstellen unterschiedlicher Module; Unvollständige Programme; unerwartete / fehlerhafte Eingaben und Argumente etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Welche Fehlerarten gibt es?

A

Compiler Fehler, Linker-Fehler, Laufzeit-Fehler, Logik-Fehler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind Compiler-Fehler?

A

Falsche Syntax, Typfehler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind Linker-Fehler?

A

Nicht gefundene Bibliothek, falsche Bibliothekversion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind Laufzeit-Fehler?

A

Crash durch Rechner, Exception durch Bibliothek / Programm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was sind Logik-Fehler?

A

Falsche Ergebnisse / Ausgaben; diese können meist erst viel später nach der Programmausführung entdeckt werden; können nicht vom Compiler gefunden werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Von was wird der Typ im Allgemeinen geprüft?

A

Vom Compiler

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie geht man bei fehlerhaften Argumenten um?

A

Beim Aufruf prüfen; Rückgabe der Fehlerwerte betrachten; Fehlerstatus betrachten; Exception auslösen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist Exception?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind die Vorteile der Exception-Behandlung?

A

Die Behandlung kann nicht vergessen werden, da sonst ggf. das Programm terminiert; nahezu jede Fehlerart kann damit behandelt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was sind die Nachteile der Exception-Behandlung?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was sind Bugs?

A

(Logik-)Fehler/Programmfehler, die ein unerwartetes Verhalten verursachen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist eine Spezifikation?

A

Eine Beschreibung bzw Dokumentation über die Anforderungen bzw Erwartungen eines Programms z.B.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie korrigiert man Bugs?

A

Mithilfe von Debugging

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was versteht man unter Debugging?

A

Ein fehlerhaftes Verhalten des Programmes feststellen und zu reproduzieren; die Fehlerursache eingrenzen; Fehler im Programm beseitigen; Prüfen / testen, ob keine neuen Fehler entstanden sind

17
Q

Welche Schwierigkeiten gibt es?

A

Jedes Programm hat Fehler; Fehlermöglichkeitenspektrum ist groß: manchmal schwer entdeckbar; beobachtetes Fehlverhalten kann erst viel später auftreten als die Ausführung der fehlerhaften Programmstelle oder kann an ganz anderer Stelle stattfinden

18
Q

Wie läuft der Debugging-Prozess ab?

A

Erstmal muss das Programm compilieren und dann den Compiler-Fehler beseitigen (Warnungen des Compilers ansehen und beseitigen). Anschließend die Programmteile Schritt für Schritt gedanklich ausführen, selbst wenn schon klar ist was das Programm macht. Dabei muss man genau hinsehen was passiert und genaue Einblicke in das Programm gewinnen. Anschließend kann man auch einen Debugger z.B. “gdb” benutzen

19
Q

Was sind die Grundregeln zur Fehlervermeidung?

A

Eine genaue Spezifikation der erwarteten Funktionen erstellen; Code dokumentieren; Annahmen über Ein- Ausgabe prüfen und dokumentieren; Programme testen (garantiert Freiheit von Logikfehlern); lesbaren Code schreiben