Seite 1 von 1

Verfasst: Donnerstag 12. Oktober 2006, 16:55
von jens
Ich hab mal [wiki]Web-Skripte zum laufen bringen[/wiki]erweitert mit Info's zu modPython...

Ich hatte nämlich gerade den Fall, das PyLucid wohl als modPython ausgeführt wird und so nicht wirklich läuft (Wenn der wsgiref CGI-Handler genommen wird)...
Das Problem ist, das der User nicht's sieht und denkt, scheiße geht nicht... Ich hab nun versucht das irgendwie Abzufangen...

Verfasst: Donnerstag 12. Oktober 2006, 17:38
von jens
So, ich hab mal versucht das auch direkt in PyLucid umzusetzten, damit Leute besseren Feedback bekommen, wenn es nicht laufen sollte...

Ich hab da jetzt mal sowas gemacht:

Code: Alles auswählen

class CGI_Error(Exception):
    def __init__(self, e, txt):
        print "Content-type: text/html; charset=utf-8\r\n\r\n"
        print "<h1>PyLucid - Low Level Error:</h1>"

        ...
        msg = "PyLucid Low Level Error: %s - %s" % (txt, e)

        import sys
        sys.stderr.write(msg)

        raise SystemExit(msg)
Dabei Frage ich mich, ob die beiden letzten Zeilen wirklich Sinn machen könnten?
Mit stderr.write denke ich, werden die Sachen in der Apache-Log hinterlegt. Bei SystemExit(), weiß ich nicht in welcher Situation das helfen könnte :)

Verfasst: Donnerstag 12. Oktober 2006, 19:23
von Leonidas
Dein raise SystemExit ist sehr seltsam, denn normalerweise macht man ja raise CGIError("Nachricht"), das heißt, Exceptions raisen nicht von selbst Exceptions. So kann man zum Beispiel Exceptions auch instanziieren, ohne dass die Exception dadurch ausgelöst wird. Lazy evalutation, somehow :)