python-project/python-3.7.4-docs-html/library/traceback.html

701 lines
57 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>traceback — Print or retrieve a stack traceback &#8212; Python 3.7.4 documentation</title>
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<script type="text/javascript" src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="Search within Python 3.7.4 documentation"
href="../_static/opensearch.xml"/>
<link rel="author" title="About these documents" href="../about.html" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
<link rel="next" title="__future__ — Future statement definitions" href="__future__.html" />
<link rel="prev" title="atexit — Exit handlers" href="atexit.html" />
<link rel="shortcut icon" type="image/png" href="../_static/py.png" />
<link rel="canonical" href="https://docs.python.org/3/library/traceback.html" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/switchers.js"></script>
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="__future__.html" title="__future__ — Future statement definitions"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="atexit.html" title="atexit — Exit handlers"
accesskey="P">previous</a> |</li>
<li><img src="../_static/py.png" alt=""
style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li>
<span class="language_switcher_placeholder">en</span>
<span class="version_switcher_placeholder">3.7.4</span>
<a href="../index.html">Documentation </a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="python.html" accesskey="U">Python Runtime Services</a> &#187;</li>
<li class="right">
<div class="inline-search" style="display: none" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('.inline-search').show(0);</script>
|
</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="module-traceback">
<span id="traceback-print-or-retrieve-a-stack-traceback"></span><h1><a class="reference internal" href="#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> — Print or retrieve a stack traceback<a class="headerlink" href="#module-traceback" title="Permalink to this headline"></a></h1>
<p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.7/Lib/traceback.py">Lib/traceback.py</a></p>
<hr class="docutils" />
<p>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.</p>
<p id="index-0">The module uses traceback objects — this is the object type that is stored in
the <a class="reference internal" href="sys.html#sys.last_traceback" title="sys.last_traceback"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_traceback</span></code></a> variable and returned as the third item from
<a class="reference internal" href="sys.html#sys.exc_info" title="sys.exc_info"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.exc_info()</span></code></a>.</p>
<p>The module defines the following functions:</p>
<dl class="function">
<dt id="traceback.print_tb">
<code class="descclassname">traceback.</code><code class="descname">print_tb</code><span class="sig-paren">(</span><em>tb</em>, <em>limit=None</em>, <em>file=None</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.print_tb" title="Permalink to this definition"></a></dt>
<dd><p>Print up to <em>limit</em> stack trace entries from traceback object <em>tb</em> (starting
from the callers frame) if <em>limit</em> is positive. Otherwise, print the last
<code class="docutils literal notranslate"><span class="pre">abs(limit)</span></code> entries. If <em>limit</em> is omitted or <code class="docutils literal notranslate"><span class="pre">None</span></code>, all entries are
printed. If <em>file</em> is omitted or <code class="docutils literal notranslate"><span class="pre">None</span></code>, the output goes to
<code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code>; otherwise it should be an open file or file-like object to
receive the output.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 3.5: </span>Added negative <em>limit</em> support.</p>
</div>
</dd></dl>
<dl class="function">
<dt id="traceback.print_exception">
<code class="descclassname">traceback.</code><code class="descname">print_exception</code><span class="sig-paren">(</span><em>etype</em>, <em>value</em>, <em>tb</em>, <em>limit=None</em>, <em>file=None</em>, <em>chain=True</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.print_exception" title="Permalink to this definition"></a></dt>
<dd><p>Print exception information and stack trace entries from traceback object
<em>tb</em> to <em>file</em>. This differs from <a class="reference internal" href="#traceback.print_tb" title="traceback.print_tb"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_tb()</span></code></a> in the following
ways:</p>
<ul class="simple">
<li><p>if <em>tb</em> is not <code class="docutils literal notranslate"><span class="pre">None</span></code>, it prints a header <code class="docutils literal notranslate"><span class="pre">Traceback</span> <span class="pre">(most</span> <span class="pre">recent</span>
<span class="pre">call</span> <span class="pre">last):</span></code></p></li>
<li><p>it prints the exception <em>etype</em> and <em>value</em> after the stack trace</p></li>
</ul>
<ul class="simple" id="index-1">
<li><p>if <em>type(value)</em> is <a class="reference internal" href="exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> and <em>value</em> has the appropriate
format, it prints the line where the syntax error occurred with a caret
indicating the approximate position of the error.</p></li>
</ul>
<p>The optional <em>limit</em> argument has the same meaning as for <a class="reference internal" href="#traceback.print_tb" title="traceback.print_tb"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_tb()</span></code></a>.
If <em>chain</em> is true (the default), then chained exceptions (the
<code class="xref py py-attr docutils literal notranslate"><span class="pre">__cause__</span></code> or <code class="xref py py-attr docutils literal notranslate"><span class="pre">__context__</span></code> attributes of the exception) will be
printed as well, like the interpreter itself does when printing an unhandled
exception.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 3.5: </span>The <em>etype</em> argument is ignored and inferred from the type of <em>value</em>.</p>
</div>
</dd></dl>
<dl class="function">
<dt id="traceback.print_exc">
<code class="descclassname">traceback.</code><code class="descname">print_exc</code><span class="sig-paren">(</span><em>limit=None</em>, <em>file=None</em>, <em>chain=True</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.print_exc" title="Permalink to this definition"></a></dt>
<dd><p>This is a shorthand for <code class="docutils literal notranslate"><span class="pre">print_exception(*sys.exc_info(),</span> <span class="pre">limit,</span> <span class="pre">file,</span>
<span class="pre">chain)</span></code>.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.print_last">
<code class="descclassname">traceback.</code><code class="descname">print_last</code><span class="sig-paren">(</span><em>limit=None</em>, <em>file=None</em>, <em>chain=True</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.print_last" title="Permalink to this definition"></a></dt>
<dd><p>This is a shorthand for <code class="docutils literal notranslate"><span class="pre">print_exception(sys.last_type,</span> <span class="pre">sys.last_value,</span>
<span class="pre">sys.last_traceback,</span> <span class="pre">limit,</span> <span class="pre">file,</span> <span class="pre">chain)</span></code>. In general it will work only
after an exception has reached an interactive prompt (see
<a class="reference internal" href="sys.html#sys.last_type" title="sys.last_type"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_type</span></code></a>).</p>
</dd></dl>
<dl class="function">
<dt id="traceback.print_stack">
<code class="descclassname">traceback.</code><code class="descname">print_stack</code><span class="sig-paren">(</span><em>f=None</em>, <em>limit=None</em>, <em>file=None</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.print_stack" title="Permalink to this definition"></a></dt>
<dd><p>Print up to <em>limit</em> stack trace entries (starting from the invocation
point) if <em>limit</em> is positive. Otherwise, print the last <code class="docutils literal notranslate"><span class="pre">abs(limit)</span></code>
entries. If <em>limit</em> is omitted or <code class="docutils literal notranslate"><span class="pre">None</span></code>, all entries are printed.
The optional <em>f</em> argument can be used to specify an alternate stack frame
to start. The optional <em>file</em> argument has the same meaning as for
<a class="reference internal" href="#traceback.print_tb" title="traceback.print_tb"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_tb()</span></code></a>.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 3.5: </span>Added negative <em>limit</em> support.</p>
</div>
</dd></dl>
<dl class="function">
<dt id="traceback.extract_tb">
<code class="descclassname">traceback.</code><code class="descname">extract_tb</code><span class="sig-paren">(</span><em>tb</em>, <em>limit=None</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.extract_tb" title="Permalink to this definition"></a></dt>
<dd><p>Return a <a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> object representing a list of “pre-processed”
stack trace entries extracted from the traceback object <em>tb</em>. It is useful
for alternate formatting of stack traces. The optional <em>limit</em> argument has
the same meaning as for <a class="reference internal" href="#traceback.print_tb" title="traceback.print_tb"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_tb()</span></code></a>. A “pre-processed” stack trace
entry is a <a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a> object containing attributes
<code class="xref py py-attr docutils literal notranslate"><span class="pre">filename</span></code>, <code class="xref py py-attr docutils literal notranslate"><span class="pre">lineno</span></code>,
<code class="xref py py-attr docutils literal notranslate"><span class="pre">name</span></code>, and <code class="xref py py-attr docutils literal notranslate"><span class="pre">line</span></code> representing the
information that is usually printed for a stack trace. The
<code class="xref py py-attr docutils literal notranslate"><span class="pre">line</span></code> is a string with leading and trailing
whitespace stripped; if the source is not available it is <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.extract_stack">
<code class="descclassname">traceback.</code><code class="descname">extract_stack</code><span class="sig-paren">(</span><em>f=None</em>, <em>limit=None</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.extract_stack" title="Permalink to this definition"></a></dt>
<dd><p>Extract the raw traceback from the current stack frame. The return value has
the same format as for <a class="reference internal" href="#traceback.extract_tb" title="traceback.extract_tb"><code class="xref py py-func docutils literal notranslate"><span class="pre">extract_tb()</span></code></a>. The optional <em>f</em> and <em>limit</em>
arguments have the same meaning as for <a class="reference internal" href="#traceback.print_stack" title="traceback.print_stack"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_stack()</span></code></a>.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.format_list">
<code class="descclassname">traceback.</code><code class="descname">format_list</code><span class="sig-paren">(</span><em>extracted_list</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.format_list" title="Permalink to this definition"></a></dt>
<dd><p>Given a list of tuples or <a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a> objects as returned by
<a class="reference internal" href="#traceback.extract_tb" title="traceback.extract_tb"><code class="xref py py-func docutils literal notranslate"><span class="pre">extract_tb()</span></code></a> or <a class="reference internal" href="#traceback.extract_stack" title="traceback.extract_stack"><code class="xref py py-func docutils literal notranslate"><span class="pre">extract_stack()</span></code></a>, return a list of strings ready
for printing. Each string in the resulting list corresponds to the item with
the same index in the argument list. Each string ends in a newline; the
strings may contain internal newlines as well, for those items whose source
text line is not <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.format_exception_only">
<code class="descclassname">traceback.</code><code class="descname">format_exception_only</code><span class="sig-paren">(</span><em>etype</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.format_exception_only" title="Permalink to this definition"></a></dt>
<dd><p>Format the exception part of a traceback. The arguments are the exception
type and value such as given by <code class="docutils literal notranslate"><span class="pre">sys.last_type</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.last_value</span></code>.
The return value is a list of strings, each ending in a newline. Normally,
the list contains a single string; however, for <a class="reference internal" href="exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>
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.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.format_exception">
<code class="descclassname">traceback.</code><code class="descname">format_exception</code><span class="sig-paren">(</span><em>etype</em>, <em>value</em>, <em>tb</em>, <em>limit=None</em>, <em>chain=True</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.format_exception" title="Permalink to this definition"></a></dt>
<dd><p>Format a stack trace and the exception information. The arguments have the
same meaning as the corresponding arguments to <a class="reference internal" href="#traceback.print_exception" title="traceback.print_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_exception()</span></code></a>. The
return value is a list of strings, each ending in a newline and some
containing internal newlines. When these lines are concatenated and printed,
exactly the same text is printed as does <a class="reference internal" href="#traceback.print_exception" title="traceback.print_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_exception()</span></code></a>.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 3.5: </span>The <em>etype</em> argument is ignored and inferred from the type of <em>value</em>.</p>
</div>
</dd></dl>
<dl class="function">
<dt id="traceback.format_exc">
<code class="descclassname">traceback.</code><code class="descname">format_exc</code><span class="sig-paren">(</span><em>limit=None</em>, <em>chain=True</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.format_exc" title="Permalink to this definition"></a></dt>
<dd><p>This is like <code class="docutils literal notranslate"><span class="pre">print_exc(limit)</span></code> but returns a string instead of printing to
a file.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.format_tb">
<code class="descclassname">traceback.</code><code class="descname">format_tb</code><span class="sig-paren">(</span><em>tb</em>, <em>limit=None</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.format_tb" title="Permalink to this definition"></a></dt>
<dd><p>A shorthand for <code class="docutils literal notranslate"><span class="pre">format_list(extract_tb(tb,</span> <span class="pre">limit))</span></code>.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.format_stack">
<code class="descclassname">traceback.</code><code class="descname">format_stack</code><span class="sig-paren">(</span><em>f=None</em>, <em>limit=None</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.format_stack" title="Permalink to this definition"></a></dt>
<dd><p>A shorthand for <code class="docutils literal notranslate"><span class="pre">format_list(extract_stack(f,</span> <span class="pre">limit))</span></code>.</p>
</dd></dl>
<dl class="function">
<dt id="traceback.clear_frames">
<code class="descclassname">traceback.</code><code class="descname">clear_frames</code><span class="sig-paren">(</span><em>tb</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.clear_frames" title="Permalink to this definition"></a></dt>
<dd><p>Clears the local variables of all the stack frames in a traceback <em>tb</em>
by calling the <code class="xref py py-meth docutils literal notranslate"><span class="pre">clear()</span></code> method of each frame object.</p>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.4.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="traceback.walk_stack">
<code class="descclassname">traceback.</code><code class="descname">walk_stack</code><span class="sig-paren">(</span><em>f</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.walk_stack" title="Permalink to this definition"></a></dt>
<dd><p>Walk a stack following <code class="docutils literal notranslate"><span class="pre">f.f_back</span></code> from the given frame, yielding the frame
and line number for each frame. If <em>f</em> is <code class="docutils literal notranslate"><span class="pre">None</span></code>, the current stack is
used. This helper is used with <a class="reference internal" href="#traceback.StackSummary.extract" title="traceback.StackSummary.extract"><code class="xref py py-meth docutils literal notranslate"><span class="pre">StackSummary.extract()</span></code></a>.</p>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.5.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="traceback.walk_tb">
<code class="descclassname">traceback.</code><code class="descname">walk_tb</code><span class="sig-paren">(</span><em>tb</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.walk_tb" title="Permalink to this definition"></a></dt>
<dd><p>Walk a traceback following <code class="docutils literal notranslate"><span class="pre">tb_next</span></code> yielding the frame and line number
for each frame. This helper is used with <a class="reference internal" href="#traceback.StackSummary.extract" title="traceback.StackSummary.extract"><code class="xref py py-meth docutils literal notranslate"><span class="pre">StackSummary.extract()</span></code></a>.</p>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.5.</span></p>
</div>
</dd></dl>
<p>The module also defines the following classes:</p>
<div class="section" id="tracebackexception-objects">
<h2><a class="reference internal" href="#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code></a> Objects<a class="headerlink" href="#tracebackexception-objects" title="Permalink to this headline"></a></h2>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.5.</span></p>
</div>
<p><a class="reference internal" href="#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code></a> objects are created from actual exceptions to
capture data for later printing in a lightweight fashion.</p>
<dl class="class">
<dt id="traceback.TracebackException">
<em class="property">class </em><code class="descclassname">traceback.</code><code class="descname">TracebackException</code><span class="sig-paren">(</span><em>exc_type</em>, <em>exc_value</em>, <em>exc_traceback</em>, <em>*</em>, <em>limit=None</em>, <em>lookup_lines=True</em>, <em>capture_locals=False</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.TracebackException" title="Permalink to this definition"></a></dt>
<dd><p>Capture an exception for later rendering. <em>limit</em>, <em>lookup_lines</em> and
<em>capture_locals</em> are as for the <a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> class.</p>
<p>Note that when locals are captured, they are also shown in the traceback.</p>
<dl class="attribute">
<dt id="traceback.TracebackException.__cause__">
<code class="descname">__cause__</code><a class="headerlink" href="#traceback.TracebackException.__cause__" title="Permalink to this definition"></a></dt>
<dd><p>A <a class="reference internal" href="#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code></a> of the original <code class="docutils literal notranslate"><span class="pre">__cause__</span></code>.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.__context__">
<code class="descname">__context__</code><a class="headerlink" href="#traceback.TracebackException.__context__" title="Permalink to this definition"></a></dt>
<dd><p>A <a class="reference internal" href="#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code></a> of the original <code class="docutils literal notranslate"><span class="pre">__context__</span></code>.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.__suppress_context__">
<code class="descname">__suppress_context__</code><a class="headerlink" href="#traceback.TracebackException.__suppress_context__" title="Permalink to this definition"></a></dt>
<dd><p>The <code class="docutils literal notranslate"><span class="pre">__suppress_context__</span></code> value from the original exception.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.stack">
<code class="descname">stack</code><a class="headerlink" href="#traceback.TracebackException.stack" title="Permalink to this definition"></a></dt>
<dd><p>A <a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> representing the traceback.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.exc_type">
<code class="descname">exc_type</code><a class="headerlink" href="#traceback.TracebackException.exc_type" title="Permalink to this definition"></a></dt>
<dd><p>The class of the original traceback.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.filename">
<code class="descname">filename</code><a class="headerlink" href="#traceback.TracebackException.filename" title="Permalink to this definition"></a></dt>
<dd><p>For syntax errors - the file name where the error occurred.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.lineno">
<code class="descname">lineno</code><a class="headerlink" href="#traceback.TracebackException.lineno" title="Permalink to this definition"></a></dt>
<dd><p>For syntax errors - the line number where the error occurred.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.text">
<code class="descname">text</code><a class="headerlink" href="#traceback.TracebackException.text" title="Permalink to this definition"></a></dt>
<dd><p>For syntax errors - the text where the error occurred.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.offset">
<code class="descname">offset</code><a class="headerlink" href="#traceback.TracebackException.offset" title="Permalink to this definition"></a></dt>
<dd><p>For syntax errors - the offset into the text where the error occurred.</p>
</dd></dl>
<dl class="attribute">
<dt id="traceback.TracebackException.msg">
<code class="descname">msg</code><a class="headerlink" href="#traceback.TracebackException.msg" title="Permalink to this definition"></a></dt>
<dd><p>For syntax errors - the compiler error message.</p>
</dd></dl>
<dl class="classmethod">
<dt id="traceback.TracebackException.from_exception">
<em class="property">classmethod </em><code class="descname">from_exception</code><span class="sig-paren">(</span><em>exc</em>, <em>*</em>, <em>limit=None</em>, <em>lookup_lines=True</em>, <em>capture_locals=False</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.TracebackException.from_exception" title="Permalink to this definition"></a></dt>
<dd><p>Capture an exception for later rendering. <em>limit</em>, <em>lookup_lines</em> and
<em>capture_locals</em> are as for the <a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> class.</p>
<p>Note that when locals are captured, they are also shown in the traceback.</p>
</dd></dl>
<dl class="method">
<dt id="traceback.TracebackException.format">
<code class="descname">format</code><span class="sig-paren">(</span><em>*</em>, <em>chain=True</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.TracebackException.format" title="Permalink to this definition"></a></dt>
<dd><p>Format the exception.</p>
<p>If <em>chain</em> is not <code class="docutils literal notranslate"><span class="pre">True</span></code>, <code class="docutils literal notranslate"><span class="pre">__cause__</span></code> and <code class="docutils literal notranslate"><span class="pre">__context__</span></code> will not
be formatted.</p>
<p>The return value is a generator of strings, each ending in a newline and
some containing internal newlines. <a class="reference internal" href="#traceback.print_exception" title="traceback.print_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_exception()</span></code></a>
is a wrapper around this method which just prints the lines to a file.</p>
<p>The message indicating which exception occurred is always the last
string in the output.</p>
</dd></dl>
<dl class="method">
<dt id="traceback.TracebackException.format_exception_only">
<code class="descname">format_exception_only</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#traceback.TracebackException.format_exception_only" title="Permalink to this definition"></a></dt>
<dd><p>Format the exception part of the traceback.</p>
<p>The return value is a generator of strings, each ending in a newline.</p>
<p>Normally, the generator emits a single string; however, for
<a class="reference internal" href="exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> exceptions, it emits several lines that (when
printed) display detailed information about where the syntax
error occurred.</p>
<p>The message indicating which exception occurred is always the last
string in the output.</p>
</dd></dl>
</dd></dl>
</div>
<div class="section" id="stacksummary-objects">
<h2><a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> Objects<a class="headerlink" href="#stacksummary-objects" title="Permalink to this headline"></a></h2>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.5.</span></p>
</div>
<p><a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> objects represent a call stack ready for formatting.</p>
<dl class="class">
<dt id="traceback.StackSummary">
<em class="property">class </em><code class="descclassname">traceback.</code><code class="descname">StackSummary</code><a class="headerlink" href="#traceback.StackSummary" title="Permalink to this definition"></a></dt>
<dd><dl class="classmethod">
<dt id="traceback.StackSummary.extract">
<em class="property">classmethod </em><code class="descname">extract</code><span class="sig-paren">(</span><em>frame_gen</em>, <em>*</em>, <em>limit=None</em>, <em>lookup_lines=True</em>, <em>capture_locals=False</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.StackSummary.extract" title="Permalink to this definition"></a></dt>
<dd><p>Construct a <a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> object from a frame generator (such as
is returned by <a class="reference internal" href="#traceback.walk_stack" title="traceback.walk_stack"><code class="xref py py-func docutils literal notranslate"><span class="pre">walk_stack()</span></code></a> or
<a class="reference internal" href="#traceback.walk_tb" title="traceback.walk_tb"><code class="xref py py-func docutils literal notranslate"><span class="pre">walk_tb()</span></code></a>).</p>
<p>If <em>limit</em> is supplied, only this many frames are taken from <em>frame_gen</em>.
If <em>lookup_lines</em> is <code class="docutils literal notranslate"><span class="pre">False</span></code>, the returned <a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a>
objects will not have read their lines in yet, making the cost of
creating the <a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> cheaper (which may be valuable if it
may not actually get formatted). If <em>capture_locals</em> is <code class="docutils literal notranslate"><span class="pre">True</span></code> the
local variables in each <a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a> are captured as object
representations.</p>
</dd></dl>
<dl class="classmethod">
<dt id="traceback.StackSummary.from_list">
<em class="property">classmethod </em><code class="descname">from_list</code><span class="sig-paren">(</span><em>a_list</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.StackSummary.from_list" title="Permalink to this definition"></a></dt>
<dd><p>Construct a <a class="reference internal" href="#traceback.StackSummary" title="traceback.StackSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code></a> object from a supplied list of
<a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a> objects or old-style list of tuples. Each tuple
should be a 4-tuple with filename, lineno, name, line as the elements.</p>
</dd></dl>
<dl class="method">
<dt id="traceback.StackSummary.format">
<code class="descname">format</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#traceback.StackSummary.format" title="Permalink to this definition"></a></dt>
<dd><p>Returns a list of strings ready for printing. Each string in the
resulting list corresponds to a single frame from the stack.
Each string ends in a newline; the strings may contain internal
newlines as well, for those items with source text lines.</p>
<p>For long sequences of the same frame and line, the first few
repetitions are shown, followed by a summary line stating the exact
number of further repetitions.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 3.6: </span>Long sequences of repeated frames are now abbreviated.</p>
</div>
</dd></dl>
</dd></dl>
</div>
<div class="section" id="framesummary-objects">
<h2><a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a> Objects<a class="headerlink" href="#framesummary-objects" title="Permalink to this headline"></a></h2>
<div class="versionadded">
<p><span class="versionmodified added">New in version 3.5.</span></p>
</div>
<p><a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a> objects represent a single frame in a traceback.</p>
<dl class="class">
<dt id="traceback.FrameSummary">
<em class="property">class </em><code class="descclassname">traceback.</code><code class="descname">FrameSummary</code><span class="sig-paren">(</span><em>filename</em>, <em>lineno</em>, <em>name</em>, <em>lookup_line=True</em>, <em>locals=None</em>, <em>line=None</em><span class="sig-paren">)</span><a class="headerlink" href="#traceback.FrameSummary" title="Permalink to this definition"></a></dt>
<dd><p>Represent a single frame in the traceback or stack that is being formatted
or printed. It may optionally have a stringified version of the frames
locals included in it. If <em>lookup_line</em> is <code class="docutils literal notranslate"><span class="pre">False</span></code>, the source code is not
looked up until the <a class="reference internal" href="#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code></a> has the <code class="xref py py-attr docutils literal notranslate"><span class="pre">line</span></code>
attribute accessed (which also happens when casting it to a tuple).
<code class="xref py py-attr docutils literal notranslate"><span class="pre">line</span></code> may be directly provided, and will prevent line
lookups happening at all. <em>locals</em> is an optional local variable
dictionary, and if supplied the variable representations are stored in the
summary for later display.</p>
</dd></dl>
</div>
<div class="section" id="traceback-examples">
<span id="traceback-example"></span><h2>Traceback Examples<a class="headerlink" href="#traceback-examples" title="Permalink to this headline"></a></h2>
<p>This simple example implements a basic read-eval-print loop, similar to (but
less useful than) the standard Python interactive interpreter loop. For a more
complete implementation of the interpreter loop, refer to the <a class="reference internal" href="code.html#module-code" title="code: Facilities to implement read-eval-print loops."><code class="xref py py-mod docutils literal notranslate"><span class="pre">code</span></code></a>
module.</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">traceback</span>
<span class="k">def</span> <span class="nf">run_user_code</span><span class="p">(</span><span class="n">envdir</span><span class="p">):</span>
<span class="n">source</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s2">&quot;&gt;&gt;&gt; &quot;</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">exec</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">envdir</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Exception in user code:&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;-&quot;</span><span class="o">*</span><span class="mi">60</span><span class="p">)</span>
<span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">(</span><span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;-&quot;</span><span class="o">*</span><span class="mi">60</span><span class="p">)</span>
<span class="n">envdir</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="n">run_user_code</span><span class="p">(</span><span class="n">envdir</span><span class="p">)</span>
</pre></div>
</div>
<p>The following example demonstrates the different ways to print and format the
exception and traceback:</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">traceback</span>
<span class="k">def</span> <span class="nf">lumberjack</span><span class="p">():</span>
<span class="n">bright_side_of_death</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">bright_side_of_death</span><span class="p">():</span>
<span class="k">return</span> <span class="nb">tuple</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">lumberjack</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
<span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span> <span class="n">exc_traceback</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** print_tb:&quot;</span><span class="p">)</span>
<span class="n">traceback</span><span class="o">.</span><span class="n">print_tb</span><span class="p">(</span><span class="n">exc_traceback</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** print_exception:&quot;</span><span class="p">)</span>
<span class="c1"># exc_type below is ignored on 3.5 and later</span>
<span class="n">traceback</span><span class="o">.</span><span class="n">print_exception</span><span class="p">(</span><span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span> <span class="n">exc_traceback</span><span class="p">,</span>
<span class="n">limit</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** print_exc:&quot;</span><span class="p">)</span>
<span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">(</span><span class="n">limit</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** format_exc, first and last line:&quot;</span><span class="p">)</span>
<span class="n">formatted_lines</span> <span class="o">=</span> <span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="nb">print</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** format_exception:&quot;</span><span class="p">)</span>
<span class="c1"># exc_type below is ignored on 3.5 and later</span>
<span class="nb">print</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exception</span><span class="p">(</span><span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span>
<span class="n">exc_traceback</span><span class="p">)))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** extract_tb:&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">extract_tb</span><span class="p">(</span><span class="n">exc_traceback</span><span class="p">)))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** format_tb:&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_tb</span><span class="p">(</span><span class="n">exc_traceback</span><span class="p">)))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;*** tb_lineno:&quot;</span><span class="p">,</span> <span class="n">exc_traceback</span><span class="o">.</span><span class="n">tb_lineno</span><span class="p">)</span>
</pre></div>
</div>
<p>The output for the example would look similar to this:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>*** print_tb:
File &quot;&lt;doctest...&gt;&quot;, line 10, in &lt;module&gt;
lumberjack()
*** print_exception:
Traceback (most recent call last):
File &quot;&lt;doctest...&gt;&quot;, line 10, in &lt;module&gt;
lumberjack()
File &quot;&lt;doctest...&gt;&quot;, line 4, in lumberjack
bright_side_of_death()
IndexError: tuple index out of range
*** print_exc:
Traceback (most recent call last):
File &quot;&lt;doctest...&gt;&quot;, line 10, in &lt;module&gt;
lumberjack()
File &quot;&lt;doctest...&gt;&quot;, line 4, in lumberjack
bright_side_of_death()
IndexError: tuple index out of range
*** format_exc, first and last line:
Traceback (most recent call last):
IndexError: tuple index out of range
*** format_exception:
[&#39;Traceback (most recent call last):\n&#39;,
&#39; File &quot;&lt;doctest...&gt;&quot;, line 10, in &lt;module&gt;\n lumberjack()\n&#39;,
&#39; File &quot;&lt;doctest...&gt;&quot;, line 4, in lumberjack\n bright_side_of_death()\n&#39;,
&#39; File &quot;&lt;doctest...&gt;&quot;, line 7, in bright_side_of_death\n return tuple()[0]\n&#39;,
&#39;IndexError: tuple index out of range\n&#39;]
*** extract_tb:
[&lt;FrameSummary file &lt;doctest...&gt;, line 10 in &lt;module&gt;&gt;,
&lt;FrameSummary file &lt;doctest...&gt;, line 4 in lumberjack&gt;,
&lt;FrameSummary file &lt;doctest...&gt;, line 7 in bright_side_of_death&gt;]
*** format_tb:
[&#39; File &quot;&lt;doctest...&gt;&quot;, line 10, in &lt;module&gt;\n lumberjack()\n&#39;,
&#39; File &quot;&lt;doctest...&gt;&quot;, line 4, in lumberjack\n bright_side_of_death()\n&#39;,
&#39; File &quot;&lt;doctest...&gt;&quot;, line 7, in bright_side_of_death\n return tuple()[0]\n&#39;]
*** tb_lineno: 10
</pre></div>
</div>
<p>The following example shows the different ways to print and format the stack:</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">traceback</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">another_function</span><span class="p">():</span>
<span class="gp">... </span> <span class="n">lumberstack</span><span class="p">()</span>
<span class="gp">...</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">lumberstack</span><span class="p">():</span>
<span class="gp">... </span> <span class="n">traceback</span><span class="o">.</span><span class="n">print_stack</span><span class="p">()</span>
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">extract_stack</span><span class="p">()))</span>
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_stack</span><span class="p">()))</span>
<span class="gp">...</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">another_function</span><span class="p">()</span>
<span class="go"> File &quot;&lt;doctest&gt;&quot;, line 10, in &lt;module&gt;</span>
<span class="go"> another_function()</span>
<span class="go"> File &quot;&lt;doctest&gt;&quot;, line 3, in another_function</span>
<span class="go"> lumberstack()</span>
<span class="go"> File &quot;&lt;doctest&gt;&quot;, line 6, in lumberstack</span>
<span class="go"> traceback.print_stack()</span>
<span class="go">[(&#39;&lt;doctest&gt;&#39;, 10, &#39;&lt;module&gt;&#39;, &#39;another_function()&#39;),</span>
<span class="go"> (&#39;&lt;doctest&gt;&#39;, 3, &#39;another_function&#39;, &#39;lumberstack()&#39;),</span>
<span class="go"> (&#39;&lt;doctest&gt;&#39;, 7, &#39;lumberstack&#39;, &#39;print(repr(traceback.extract_stack()))&#39;)]</span>
<span class="go">[&#39; File &quot;&lt;doctest&gt;&quot;, line 10, in &lt;module&gt;\n another_function()\n&#39;,</span>
<span class="go"> &#39; File &quot;&lt;doctest&gt;&quot;, line 3, in another_function\n lumberstack()\n&#39;,</span>
<span class="go"> &#39; File &quot;&lt;doctest&gt;&quot;, line 8, in lumberstack\n print(repr(traceback.format_stack()))\n&#39;]</span>
</pre></div>
</div>
<p>This last example demonstrates the final few formatting functions:</p>
<div class="highlight-pycon3 notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">traceback</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">traceback</span><span class="o">.</span><span class="n">format_list</span><span class="p">([(</span><span class="s1">&#39;spam.py&#39;</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">&#39;&lt;module&gt;&#39;</span><span class="p">,</span> <span class="s1">&#39;spam.eggs()&#39;</span><span class="p">),</span>
<span class="gp">... </span> <span class="p">(</span><span class="s1">&#39;eggs.py&#39;</span><span class="p">,</span> <span class="mi">42</span><span class="p">,</span> <span class="s1">&#39;eggs&#39;</span><span class="p">,</span> <span class="s1">&#39;return &quot;bacon&quot;&#39;</span><span class="p">)])</span>
<span class="go">[&#39; File &quot;spam.py&quot;, line 3, in &lt;module&gt;\n spam.eggs()\n&#39;,</span>
<span class="go"> &#39; File &quot;eggs.py&quot;, line 42, in eggs\n return &quot;bacon&quot;\n&#39;]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">an_error</span> <span class="o">=</span> <span class="ne">IndexError</span><span class="p">(</span><span class="s1">&#39;tuple index out of range&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exception_only</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">an_error</span><span class="p">),</span> <span class="n">an_error</span><span class="p">)</span>
<span class="go">[&#39;IndexError: tuple index out of range\n&#39;]</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="../contents.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code> — Print or retrieve a stack traceback</a><ul>
<li><a class="reference internal" href="#tracebackexception-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code> Objects</a></li>
<li><a class="reference internal" href="#stacksummary-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">StackSummary</span></code> Objects</a></li>
<li><a class="reference internal" href="#framesummary-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">FrameSummary</span></code> Objects</a></li>
<li><a class="reference internal" href="#traceback-examples">Traceback Examples</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="atexit.html"
title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code> — Exit handlers</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="__future__.html"
title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">__future__</span></code> — Future statement definitions</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.7/Doc/library/traceback.rst"
rel="nofollow">Show Source
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="__future__.html" title="__future__ — Future statement definitions"
>next</a> |</li>
<li class="right" >
<a href="atexit.html" title="atexit — Exit handlers"
>previous</a> |</li>
<li><img src="../_static/py.png" alt=""
style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li>
<span class="language_switcher_placeholder">en</span>
<span class="version_switcher_placeholder">3.7.4</span>
<a href="../index.html">Documentation </a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="python.html" >Python Runtime Services</a> &#187;</li>
<li class="right">
<div class="inline-search" style="display: none" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('.inline-search').show(0);</script>
|
</li>
</ul>
</div>
<div class="footer">
&copy; <a href="../copyright.html">Copyright</a> 2001-2019, Python Software Foundation.
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
Last updated on Jul 13, 2019.
<a href="../bugs.html">Found a bug</a>?
<br />
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 2.0.1.
</div>
</body>
</html>