User Tools

Site Tools


error_py

This is an old revision of the document!


Fehlerbehandlung mit Python

In den seltensten Fällen, will man, dass ein Programm bei fehlerhafter Eingabe abstürzt. Dafür gibts es Fehlerbehandlung. Es ist zwar auch grundsätzlich eine gute Idee so zu programmieren, dass keine Abstürze passieren. Damit ist gemeint, dass jede Eingabe geprüft werden muss. Wird bei der Frage nach dem Alter irgendein Text eingegeben so kommt es im Laufe der Berechnungen bestimmt zu Fehlern.
Leider lassen sich Fehler trotzdem nicht gänzlich verhindern. Was uns wieder zur Fehlerbehandler (oder ExceptionHandling) bringt und hier beschrieben wird.

Bei den Listen lists in Python3 sind zwei Beispiele vorgekommen, die abstürzen. Das war die Methode listremove_element und die Methode listindex_element. Hier wird das Programm absturzfrei gemacht.

try catch remove

Noch einmal das abstürzende Programm in gekürzter Fassung:

list = [0, 1, 1, 123533219, 2, 3, 5, 8, 13]
list.remove(123533219) 
# Die nächste Zeile wirft einen ValueError und das Programm stoppt
list.remove(123533219)
# Diese Zeile wird nicht mehr ausgeführt
print(list)

Wir packen das nun in einen try Block. Im Falle eines ValueErrors springt das Programm in den Except Block

list = [0, 1, 1, 123533219, 2, 3, 5, 8, 13]
 
try:
    list.remove(123533219)
    # Die nächste Zeile wirft einen ValueError, da 123533219 schon entfernt wurde, und das Programm fällt in den catch Block
    list.remove(123533219)
except ValueError:
    print("Konnte Element nicht entfernen, da es nicht in der Liste ist")
 
# Nun läuft das Programm weiter und die Liste kann ausgegeben werden
print(list)
error_py.1498741542.txt.gz · Last modified: 2017/06/29 15:05 by gg