Forum: Mikrocontroller und Digitale Elektronik ESP8266 - Python - Exception ermitteln


von Michael S. (Gast)


Lesenswert?

Hallo Leute,
habe hier einen ESP8266 mit Micropython am laufen. Der läuft 24h und 
sendet zyklisch Daten an einen Webserver. Gelegentlich passiert es, das 
das Python-Script vermutlich mit einer Exception abstürzt. Wenn ich dann 
mit WebREPL draufschaue sehe ich, dass die Konsole funktional ist.
Das bedeutet:
1. Es hat kein Reboot stattgefunden, denn dann wäre das Script über den 
Autostart neu gestartet worden.
2. Das Script wurde vermutlich durch eine Exception beendet.

Die mir bekannten kritischen Dinge (Netzwerk) habe ich schon mit 
Try/Except abgefangen. Trotzdem bricht das Skript ab.

Wie bekomme ich raus, was das für eine Exception war? Ich kann schlecht 
Wochenlang ein Notebook mit RS232 durchlaufen lassen, um da mitzuhören.

Michael

von Eric B. (beric)


Lesenswert?

http://py-tutorial-de.readthedocs.io/de/latest/errors.html#ausnahmen-behandeln
1
try:
2
    ruf_hier_dein_script_auf
3
except:
4
    print("Unbekannter Fehler:", sys.exc_info()[0])
5
    raise
hilft dir so was?

von Michael S. (Gast)


Lesenswert?

Damit bekomme ich aber auch nicht raus, was es war, wenn ich mich erst 
nach Auftritt der Exception an der Python-Konsole anmelde.

Oder habe ich das falsch verstanden?

Michael

von ChristophS (Gast)


Lesenswert?

Kannst ja ne LED anschalten oder blinken lassen und so deinen Fehlercode 
übermitteln

von Sascha W. (sascha-w)


Lesenswert?

Oder das print in eine Loop einbauen die den Fehler alle 10s ausgibt.

Sascha

von Michael S. (Gast)


Lesenswert?

Ok, geht aber nur, wenn ich ein Try/Except um alles außenrum setze.

Ich habe mir das Script nochmal angesehen und tatsächlich hat ein 
Try/Except um die HTTP-Get-Anweisung gefehlt. Habe ich nun mal 
hinzugefügt. Wenn das dann 1800mal in Folge schief geht (halbe Stunde), 
dann soll das Ding rebooten.
Wenn also längere Zeit kein Internet da ist, dann rebootet es alle 30 
Minuten.

Mal auf den nächsten Ausfall gespannt, so er denn kommt.

Michael

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.