17. Lektion: Fehlerbehandlung
assert
Assert prüft eine Bedingung und gibt wenn False eine Meldung aus.
Das Programm wird dadurch abgebrochen.
>>> a = 1
>>> b = 2
>>> assert a < b, 'a ist kleiner als b'
>>>
>>> assert not a < b, 'a ist kleiner als b'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: a ist kleiner als b
>>>
Übung:
- Teste verschiedene Möglichkeiten um eine assert-Meldung auszulösen.
try/except
Dieses ist die klassische Fehlerbehandlung in Python. (Beispiel für Python)
try:
# Diese Anweisung kann einen FileNotFoundError auslösen:
file = open('/tmp/any_file.txt')
except FileNotFoundError:
print("Datei nicht gefunden!")
except IOError:
print("Datei nicht lesbar!")
else:
# Datei einlesen, wenn kein Fehler augetreten ist:
data = file.read()
finally:
# Diese Anweisung in jedem Fall ausführen:
file.close()
Micropython Fehlercode (Exceptions)
Es gibt eine ganze Menge Fehlermeldungen die in Python enthalten sind und mit exception ausgewertet werden können. In Micropython sind es weniger:
- AssertionError
- AttributeError
- Exception
- ImportError
- IndexError
- KeyboardInterrupt
- KeyError
- MemoryError
- NameError
- NotImplementedError
- OSError
- RuntimeError
- StopIteration
- SyntaxError
- SystemExit
- TypeError
- ValueError
- ZeroDivisionError
Weitere Exceptions konnen durch Module dazu kommen.
Sparversion
Ggf. funktioniert das auch ohne Exception Fehlerauswertung:
>>> try:
1/0
except:
print("Geht nicht!")
Geht nicht!
>>>
Diese Version ist nicht gerade pythonisch, aber bei der Entwicklung sehr hilfreich.
== Weterführende Links:
https://www.python-kurs.eu/python3_ausnahmebehandlung.php
https://phyton.plainenglish.io/defensive-programming-in-phyton-af0266e65dfd defensive-programming-in-phyton
https://realpython.com/python-catch-multiple-exceptions/
Zurück zu Micropython Kurs 2023 - Teil 1
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite