This module provides a standard interface to extract, format and print stack traces of Python programs. It exactly mimics the behavior of the Python interpreter when it prints a stack trace. This is useful when you want to print stack traces under program control, such as in a ``wrapper'' around the interpreter.
The module uses traceback objects -- this is the object type that is
stored in the variables
sys.exc_traceback (deprecated) and
sys.last_traceback and returned as the third item from
The module defines the following functions:
|traceback[, limit[, file]])|
None, all entries are printed. If file is omitted or
None, the output goes to
sys.stderr; otherwise it should be an open file or file-like object to receive the output.
|type, value, traceback[, limit[, file]])|
None, it prints a header "Traceback (most recent call last):"; (2) it prints the exception type and value after the stack trace; (3) if type is SyntaxError and value has the appropriate format, it prints the line where the syntax error occurred with a caret indicating the approximate position of the error.
print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit, file). (In fact, it uses sys.exc_info() to retrieve the same information in a thread-safe way instead of using the deprecated variables.)
print_exception(sys.last_type, sys.last_value, sys.last_traceback, limit, file).
|[f[, limit[, file]]])|
None, all entries are extracted. A ``pre-processed'' stack trace entry is a quadruple (filename, line number, function name, text) representing the information that is usually printed for a stack trace. The text is a string with leading and trailing whitespace stripped; if the source is not available it is
sys.last_value. The return value is a list of strings, each ending in a newline. Normally, the list contains a single string; however, for SyntaxError exceptions, it contains several lines that (when printed) display detailed information about where the syntax error occurred. The message indicating which exception occurred is the always last string in the list.
|type, value, tb[, limit])|
tb.tb_linenowas not updated correctly. This function has no use in versions past 2.3.