17. Lektion: Fehlerbehandlung

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

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/

Navigation

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