error_py
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
error_py [2017/06/29 14:58] – [try catch remove] gg | error_py [2017/06/29 15:37] (current) – [try catch remove] gg | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Fehlerbehandlung mit Python ====== | ====== 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, | + | 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, |
- | Leider lassen sich Fehler trotzdem nicht gänzlich verhindern. Was uns wieder zur Fehlerbehandler | + | Leider lassen sich Fehler trotzdem nicht gänzlich verhindern. Was uns wieder zur Fehlerbehandlund |
- | Bei den Listen [[struct_py_list|lists in Python3]] sind zwei Beispiele vorgekommen, | + | Bei den Listen [[struct_py_list|lists in Python3]] sind zwei Beispiele vorgekommen, |
===== try catch remove ===== | ===== try catch remove ===== | ||
Line 17: | Line 17: | ||
</ | </ | ||
- | Wir packen das nun in einen try catch Block | + | Wir packen das nun in einen try Block. Im Falle eines ValueErrors springt das Programm in den Except Block |
<code python> | <code python> | ||
list = [0, 1, 1, 123533219, 2, 3, 5, 8, 13] | list = [0, 1, 1, 123533219, 2, 3, 5, 8, 13] | ||
Line 30: | Line 31: | ||
# Nun läuft das Programm weiter und die Liste kann ausgegeben werden | # Nun läuft das Programm weiter und die Liste kann ausgegeben werden | ||
print(list) | print(list) | ||
+ | </ | ||
+ | |||
+ | Es gibt natürlich Situationen, | ||
+ | |||
+ | <code python> | ||
+ | # Das brauchen wir um Informationen, | ||
+ | import sys | ||
+ | |||
+ | try: | ||
+ | # Der Versuch eine Datei zu öffnen | ||
+ | f = open(' | ||
+ | # Der Versuch eine Zeile aus der Datei zu lesen | ||
+ | s = f.readline() | ||
+ | # Der Versuch die gelesene Zeile in eine Zahl um zu wandeln | ||
+ | i = int(s.strip()) | ||
+ | except IOError as err: | ||
+ | # IOError kann beim öffnen der Datei passieren. Sei die Datei nicht da, man darf nicht lesend darauf zugreifen, etc, etc | ||
+ | print(" | ||
+ | except ValueError: | ||
+ | # Wenn die gelesene Zeile nicht umgewandelt werden kann, passiert ein ValueError | ||
+ | # Beispielsweise wird "Hallo Welt" eingelesen. Was soll das für eine Zahl sein? | ||
+ | print(" | ||
+ | except: | ||
+ | # Ein Unbekannter Fehler passiert. Es wird eine Fehlermeldung ausgegeben... | ||
+ | print(" | ||
+ | # ...und durch raise wird der Error weiter gegeben (Typischer Weise würde das Programm hier abstürzen, sofern der Fehler nicht wo anders abgefangen wird | ||
+ | raise | ||
</ | </ |
error_py.1498741109.txt.gz · Last modified: 2017/06/29 14:58 by gg