i

Exkurs - Fehlerbehandlung

Laufzeitfehler

Beim Programm Anhalteweg eines Autos wird erwartet, dass der Benutzer eine (sinnvolle) Zahl als Geschwindigkeit eingibt und nicht sonst eine (noch so sinnvolle) Zeichenkette.

Anwendungsfenster

Wenn er das nicht macht, dann bricht das Programm mit einer Fehlermeldung seine Ausführung ab.

>>> 
Exception in tkinter callback
Traceback (most recent call last):
  File ...
    return self.func(*args)
  File ... in Button_Berechnen_Click
    geschwindigkeit = float(entryGeschwindigkeit.get())
ValueError: invalid literal for float(): gering

Aufgabe 1

Die Fehlermeldung liefert einen Hinweis, warum es hier zum Programmabbruch kommt. Erkläre die Ursache für den Programmabbruch.

Aufgabe 2

Der folgende Quelltextauszug zeigt, wie man einen Programmabbruch durch Laufzeitfehler vermeiden kann. Kannst du durch Analyse des Quelltextes erschließen, wie das System bei nicht beabsichtigten Eingaben reagiert? Überprüfe deine Vermutung.

def Button_Berechnen_Click():    
    try:
        # Übernahme der Daten
        geschwindigkeit = float(entryGeschwindigkeit.get())
        # Verarbeitung der Daten
        reaktionsweg = (geschwindigkeit/10)*3
        bremsweg = (geschwindigkeit/10) * (geschwindigkeit/10)
        anhalteweg = reaktionsweg + bremsweg    
        # Anzeige der Daten
        anzeigeReaktionsweg = '%.2f'%(reaktionsweg)
        labelWertReaktionsweg.config(text=anzeigeReaktionsweg)
        anzeigeBremsweg = '%.2f'%(bremsweg)
        labelWertBremsweg.config(text=anzeigeBremsweg)
        anzeigeAnhalteweg = '%.2f'%(anhalteweg)
        labelWertAnhalteweg.config(text=anzeigeAnhalteweg)
    except:
        entryGeschwindigkeit.delete(0, END)

Behandlung von Laufzeitfehlern

Laufzeitfehler sind Fehlersituationen, die während der Ausführung eines Programms auftreten.

Beispiele für Laufzeitfehler:

  • Eine Operation soll mit Daten ausgeführt werden, deren Typ nicht passt.
  • Eine Division durch 0 soll ausgeführt werden.
  • Eine Datei soll geladen werden, die nicht vorhanden ist.
  • ...

Laufzeitfehler führen in der Regel zu Programmabbrüchen. Solche Programmabbrüche sind nicht nur unangenehm, sie können ganze Systeme lahmlegen und so für Katastrophen unterschiedlichen Ausmaßes sorgen.

Systeme sollten so konzipiert und realisiert werden, dass sie auch bei fehlerhaften Situationen sinnvoll weiterarbeiten.

Insbesondere sollten Systeme mit einer grafischen Benutzungsoberflächen so fehlertolerant sein, dass keine Benutzeraktion zu einem Absturz des Systems führt.

Suche

v
9.1.2.5
www.inf-schule.de/software/gui/struktur/exkurs_fehlerbehandlung
www.inf-schule.de/9.1.2.5
www.inf-schule.de/@/page/3xxv5wH3roekstnI

Rückmeldung geben