Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5196
| Path | csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | "Michael S." <michaely@bigfoot.de> |
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Micropython - Exception nachträglich ermitteln |
| Date | Mon, 2 Jul 2018 15:25:02 +0200 |
| Lines | 59 |
| Message-ID | <fpundeF4ei1U1@mid.individual.net> (permalink) |
| References | <fpufbqF2sqvU1@mid.individual.net> <9a003315-4f84-cadd-bc0e-2a6d025ab072@sschwarzer.net> <mailman.68.1530537050.2754.python-de@python.org> |
| Reply-To | michael_news2016@gmx.de |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 8bit |
| X-Trace | individual.net YN+Ul5PeIC2gFnFNKqpT+gGLrM6BTc/AN6NZsM5bibNRQcEezi |
| Cancel-Lock | sha1:rEfifShhKYrUTShFwOOr0kYzXd0= |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
| In-Reply-To | <mailman.68.1530537050.2754.python-de@python.org> |
| Content-Language | de-DE |
| Xref | csiph.com de.comp.lang.python:5196 |
Show key headers only | View raw
Am 02.07.2018 um 15:10 schrieb Stefan Schwarzer:
> 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.
Eigentlich mache ich das und habe um die Netzwerk-Sache ein Try/Except
außenrum gesetzt.
Es ist halt kein Linux dahinter. z.B. könnte auch RAM-Mangel der Grund
sein und dann kann auch ein Versuch, ne Datei zu schreiben, schief gehen.
Da ich nach der Exception ja auf der Console bin und da arbeiten kann:
Kann ich die letzte Exception nochmal abfragen? Merkt sich das ein
normales Python?
--
Michael
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