MicroPython: Fehlerbehandlung und Ausnahmebehandlung

Im Wesentlichen können Fehler und Ausnahmen in MicroPython in zwei Kategorien unterteilt werden:

  • Hardware-Fehler, die vom Mikrocontroller oder den angeschlossenen Geräten erzeugt werden.
  • Software-Fehler, die vom Programm selbst ausgelöst werden.

Ein Beispiel für einen Hardware-Fehler könnte ein Speicherüberlauf sein, bei dem ein Programm versucht, mehr Speicher zu verwenden, als verfügbar ist. Ein Beispiel für einen Software-Fehler könnte eine Division durch Null oder ein fehlerhaftes Argument in einer Funktion sein.

Alle Fehler führen in der Regel dazu, dass das Programm unkontrolliert beendet wird und der Mikrocontroller manuell neu gestartet werden muss.

MicroPython bietet Methoden zur Fehler- und Ausnahmebehandlung, die ähnlich wie in Python funktionieren. In der Regel verwendet man die Funktionen der Fehler- und Ausnahmebehandlung, um im Fehlerfall einen anderen Lösungsweg zu gehen, um das Programm fortzuführen. Es ermöglicht Programmierern, ihre Programme sicherer und stabiler zu gestalten.

Ausnahmebehandlung mit einem try/except-Block

Zur Ausnahmebehandlung können in MicroPython die try-except-Blöcke verwendet werden, um Ausnahmen abzufangen, die während der Ausführung einer Anweisung auftreten können.

Im folgenden Beispiel wird versucht, eine Division durch Null durchzuführen, die zwangsläufig zu einer Ausnahme führt.

x = 1 / 0
print("Hallo Welt")

Die zweite Zeile des Programmcodes wird gar nicht mehr ausgeführt, weil das Programm wegen des Fehlers in der ersten Zeile abgebrochen wird. Wenn sich dieser Fehler nicht ausschließen lässt, kann man wenigstens eine Ausnahmebehandlung vorsehen.

Im folgenden Beispiel fängt der try-Block diesen Fehler mit einem except-Block ab, der eine Fehlermeldung ausgibt.

try:
    # Programmcode, der zu einem Fehler führen kann
    x = 1 / 0
except Exception as e:
    # Programmcode, der im Fehlerfall ausgeführt wird
    print("Fehler:", e)

Die Ausgabe einer Fehlermeldung muss nicht zwangsläufig sinnvoll sein. Wir versuchen es mit einer sinnvolleren Variante, die den Programmcode weiterführt.

try:
    x = 1 / 0
except Exception as e:
    x = 0
print(x)

Weitere Ausnahmebehandlungen mit try/except

Es gibt noch weitere Arten von except-Blöcken, um bestimmte Ausnahmen abzufangen. Beispielsweise auch, um auf Benutzerunterbrechungen zu reagieren.

try:
    raise IndexError("Das hier ist ein Index-Fehler")
except IndexError as e:
    print(e)
except (TypeError, NameError):
    pass
else:
    print("Keine Probleme")
finally:
    print("Hier können wir Ressourcen aufräumen")
  • try: Programmcode, in dem ein Fehler vorkommen kann. Mit „raise“ wird ein Fehler erzeugt und ausgegeben.
  • except: Kann mehrfach vorkommen und auf bestimmte Fehler reagieren. „pass“ ist eine Nicht-Operation. Er wird verwendet, wenn in einem Block nichts passieren soll. Normalerweise würden man hier den Fehler klären.
  • else: Ist optional und kann hinter allen except-Blöcken verwendet werden. Er wird nur dann ausgeführt, wenn keine Ausnahmen aufgetreten ist.
  • finally: Wird immer dann ausgeführt, bevor der „try/except“-Block beendet wird.

Beispiele mit try/except

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk

 

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython

Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Pico WLAN Edition
Elektronik-Set Pico WLAN Edition

Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT

Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Sensor Edition
Elektronik-Set Sensor Edition

Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition

Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.

Elektronik-Set jetzt bestellen