Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5195
| From | Stefan Schwarzer <sschwarzer@sschwarzer.net> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Micropython - Exception nachträglich ermitteln |
| Date | 2018-07-02 15:10 +0200 |
| Message-ID | <mailman.68.1530537050.2754.python-de@python.org> (permalink) |
| References | <fpufbqF2sqvU1@mid.individual.net> <9a003315-4f84-cadd-bc0e-2a6d025ab072@sschwarzer.net> |
On 2018-07-02 13:07, Michael S. wrote:
> habe hier einen ESP8266 mit Micropython am Laufen. Der läuft 24h und
> sendet zyklisch Daten an einen Webserver. Gelegentlich (Tage bis Wochen)
> 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.
ich habe keine Erfahrung mit MicroPython, aber sonst ist
das übliche Vorgehen, auf der obersten Aufrufebene ein
try/except zu verwenden und im Fehlerfall die Exception
(evtl. mit weiteren Informationen) zu loggen.
Also in etwa:
import logging
def main():
...
if __name__ == "__main__":
# Set up logging.
log = logging.getLogger()
...
try:
main()
except Exception:
log.exception("ggf. zusätzlicher Text")
logging.shutdown()
"Netzwerkfehler" lassen sich manchmal schwer abfangen, weil
sie in ganz verschiedenen Exceptions resultieren können (bspw.
Low-Level-Socketfehler oder Fehler auf Anwendungsprotokoll-
Ebene). In dem Fall ist es für die Fehleranalyse hilfreich,
wie oben lieber zu viel als zu wenig abzufangen und zu loggen.
Viele Grüße
Stefan
Back to de.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Micropython - Exception nachträglich ermitteln "Michael S." <michaely@bigfoot.de> - 2018-07-02 13:07 +0200
Re: [Python-de] Micropython - Exception nachträglich ermitteln Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2018-07-02 15:10 +0200
Re: [Python-de] Micropython - Exception nachträglich ermitteln "Michael S." <michaely@bigfoot.de> - 2018-07-02 15:25 +0200
Re: [Python-de] Micropython - Exception nachträglich ermitteln "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2018-07-02 13:30 +0000
Re: [Python-de] Micropython - Exception nachträglich ermitteln "Michael S." <michaely@bigfoot.de> - 2018-07-02 15:57 +0200
csiph-web