Fehlende Datei erzeugt Laufzeitfehler

  • Liebe Entwickler, die folgende Fehlermeldung entsteht, wenn eine Telefonnummer aus einer nicht existenten Datei angerufen werden soll. Könnte man noch abfangen.


    LG


    pah






    • Offizieller Beitrag

    Das sind ja zwei getrennt voneinander aufgetretene Fehler - Richtig?


    Der erste Fehler ist:

    2016-04-26 09:41:44,093 [ERROR] [doorpi.action.SingleActions.file_call_value] couldn't get phonenumber from file

    Das ist bereits der "try except" Block und die Exception wurde sauber abgefangen.
    https://github.com/motom001/Do…ns/file_call_value.py#L20


    Wie hättest Du an der Stelle den Fehlerabfang erwartet? Hätte statt dessen eine Default-Nummer angerufen werden?


    Der zweite Fehler ist

    2016-04-26 09:48:00,076 [ERROR] [doorpi.status.webserver_lib.request_handler_static_functions] DoorPiWebRequestHandler instance has no attribute 'return_fallback_content'

    Den Fehler verstehe ich noch nicht ganz und muss es zu Hause nachstellen - das scheint ein CopyPaste Fehler zu sein, der bisher immer übersehen wurde.

  • return self.return_fallback_content(self.server.online_fallback, path)
    AttributeError: DoorPiWebRequestHandler instance has no attribute 'return_fallback_content'
    2016-04-26 09:48:00,088 [ERROR] [doorpi.status.webserver_lib.request_handler_static_functions] [192.168.0.20] (500, "DoorPiWebRequestHandler instance has no attribute 'return_fallback_content'")

    den ersten fehler sollte die angehängte version fixen (ungetestet) - dann würde kein ERROR mehr kommen...
    default-wert macht hier aber m. E. nach keinen Sinn...

    • Offizieller Beitrag

    angehängte version fixen

    Deine Änderungen sind doch spezielle diese hier:

    Python: file_call_value.py
    if not (os.path.isfile(filename)):
                logger.exception("couldn't get phonenumber from file (%s) - file not found", filename)
                return False


    Das ergibt aber, meiner Meinung nach zumindest, keinen Sinn, denn der grundsätzliche Ablauf wird dadurch nicht verbessert.
    Wenn es die Datei nicht gibt, dann ist es ein Problem. Du fragst vorher - ich fange eventuell Exceptions ab und reagiere drauf.


    Besser wäre sowas wie:


    Code
    [EVENT_OnStartup]
    10 = os_execute:echo **621 > /home/doorpi/callnumber
    20 = sleep:1

    Dann wäre die Datei bei Systemstart sicherlich vorhanden und es käme gar nicht erst zu der Fehlermeldung.

  • sorry, da war ich ein wenig ZU eifrig, ich hatte nicht erkannt, daß der log-auszug von pah NICHT zu einem crash führt, sondern _nur_ ein error ist. mea culpa.


    und da gebe ich pah wegen DAU schon recht - nur ist doorpi m. E. momentan eh noch nicht DAU-sicher ;)

  • Zunächst einmal: Von crash hatte ich auch nichts geschrieben, sondern nur von einem Laufzeitfehler, den man abfangen könnte.


    Defaultwerte sind wieder schwer kontrollierbar. Ich würde einfach eine Fehlermeldung ins Log ausgeben und gar nichts tun lassen.


    LG


    pah