problem with exception output
Mark Hammond
mhammond at skippinet.com.au
Mon Feb 25 04:41:36 EST 2002
Felix Seeger wrote:
> Hi
>
> I can't get the hole exception if my script (cgi) fails.
> I use this to get every exception:
>
> except:
> print '<table width="100%">'
> trace = traceback.extract_tb(sys.exc_traceback)
>
> print '<tr><td>Exception Type:</td><td>', sys.exc_type, '</td></tr>'
> print '<tr><td>Exception Value:</td><td>', sys.exc_value, '</td></tr>'
> for filename, lineno, function, message in trace:
> print '<tr><td>Filename:</td><td>', filename, '</td></tr>'
> print '<tr><td>Error message:</td><td>', message, '</td></tr>'
> print '<tr><td>Line:</td><td>', lineno, '</td></tr>'
> print '<tr><td>Function:</td><td>', function, '</td></tr>'
>
> print '<tr><td>Complete Stack:</td></tr>'
> print '<tr><td><hr></td></tr>'
> print '<tr><td colspan="2">', traceback.print_stack(), '</td></tr>'
> print '<tr><td><hr></td></tr>'
>
> print '<tr><td>Complete Traceback:</td></tr>'
> print '<tr><td><hr></td></tr>'
> print '<tr><td colspan="2">', traceback.print_exc(), '</td></tr>'
> print '<tr><td><hr></td></tr>'
> print '</table>'
>
> Everything works fine but the print_stack() and print_exc() prints None.
These functions print the information to sys.stderr/out, rather than
returning the value as a string. You probably want something like:
f = StringIO.StringIO()
f.write("<tr><etc>")
traceback.print_exc(file=f)
f.write("</etc></tr>")
etc.
Mark.
More information about the Python-list
mailing list