Malcolm Greene wrote: > Is there a way to capture cgitb's extensive output in an except clause > so that cgitb's detailed traceback output can be logged *and* the except > section can handle the exception so the script can continue running? > > My read of the cgitb documentation leads me to believe that the only way > I can get cgitb output is to let an exception propagate to the point of > terminating my script ... at which point cgitb grabs the exception and > does its magic.
I see Steven has already answered while I was composing an example script. Rather than throwing it away I'll give it below: #!/usr/bin/env python3 import cgitb cgitb.enable() print("Content-type: text/html\r\n\r\n") print("<html><body>") print("hello world<br/>") for expr in [ "1 + 1", "1 / 0", # handled in the except clause "2 * 2", "1 x 2", # handled by sys.excepthook set via cgitb.enable() "3 * 3" # not reached ]: try: print(expr, "=", eval(expr)) except ZeroDivisionError: cgitb.Hook().handle() print("<br/>") print("</body></html>") -- https://mail.python.org/mailman/listinfo/python-list