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
