Am Donnerstag, 21. April 2005 12:20 schrieb Jamie Hillman: > Hi, > > I'm porting a rather large quixote app from an ancient version of > quixote to 1.2 and i'm having a problem with exception handling. It > seems that only PublishErrors are now handled by _q_exception_handler. Hi, I overwrite _generate_cgitb_error in my publisher. The HTML of the cgitb is written to a file and if a special file exists, the cgitb page is returned (debugging). If the file (... "debug-modarch") does not exist, then the string value of the exception is displayed in a template. Maybe this helps you: def _generate_cgitb_error(self, request, original_response, exc_type, exc_value, tb): import cgi import shutil from fuelle_template import fuelle_template cgitb_error=Publisher._generate_cgitb_error(self, request, original_response, exc_type, exc_value, tb) # Speichere HTML-Traceback. Er enthält mehr Informationen # als der Ascii Traceback in der E-Mail savedir=os.path.join(self.modarch.home, "log", "exceptions") if not os.path.exists(savedir): os.makedirs(savedir) htmlfile=os.path.join(savedir, "%s-%s-%s.html" % ( time.strftime("%Y-%m-%d-%H-%M-%S"), random.randint(1000, 9999), request.environ.get("REMOTE_USER"))) fd=open(htmlfile, "wt") fd.write(cgitb_error) fd.close() print "Erstellte HTML Traceback in %s" % htmlfile if os.path.exists(os.path.join(self.modarch.home, "log", "debug-modarch")): return cgitb_error if exc_value: # assert mytest, "Fehler: ...." text=str(exc_value) else: # raise("Fehler: ...") text=str(exc_type) text=cgi.escape(text) mydict={} mydict["TEXT"]=text return fuelle_template( self.modarch.modarch_handler.templates["fehler"], mydict, request, self.modarch) Thomas -- Thomas Güttler, TBZ-PARIV GmbH, Bernsdorfer Str. 210-212, 09126 Chemnitz Tel.: 0371/5221217 Fax: 0371/5221216