Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > contrib-backports > by-pkgid > 3ba3bd1608c672ba2129b098a48e9e4d > files > 676

python3-docs-3.2.2-3mdv2010.2.noarch.rpm



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>5. Built-in Exceptions &mdash; Python v3.2.2 documentation</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '3.2.2',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </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/sidebar.js"></script>
    <link rel="search" type="application/opensearchdescription+xml"
          title="Search within Python v3.2.2 documentation"
          href="../_static/opensearch.xml"/>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="copyright" title="Copyright" href="../copyright.html" />
    <link rel="top" title="Python v3.2.2 documentation" href="../index.html" />
    <link rel="up" title="The Python Standard Library" href="index.html" />
    <link rel="next" title="6. String Services" href="strings.html" />
    <link rel="prev" title="4. Built-in Types" href="stdtypes.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
 

  </head>
  <body>
    <div class="related">
      <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="strings.html" title="6. String Services"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="stdtypes.html" title="4. Built-in Types"
             accesskey="P">previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">Python v3.2.2 documentation</a> &raquo;</li>

          <li><a href="index.html" accesskey="U">The Python Standard Library</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="built-in-exceptions">
<span id="bltin-exceptions"></span><h1>5. Built-in Exceptions<a class="headerlink" href="#built-in-exceptions" title="Permalink to this headline">¶</a></h1>
<p id="index-0">In Python, all exceptions must be instances of a class that derives from
<a class="reference internal" href="#BaseException" title="BaseException"><tt class="xref py py-class docutils literal"><span class="pre">BaseException</span></tt></a>.  In a <a class="reference internal" href="../reference/compound_stmts.html#try"><tt class="xref std std-keyword docutils literal"><span class="pre">try</span></tt></a> statement with an <a class="reference internal" href="../reference/compound_stmts.html#except"><tt class="xref std std-keyword docutils literal"><span class="pre">except</span></tt></a>
clause that mentions a particular class, that clause also handles any exception
classes derived from that class (but not exception classes from which <em>it</em> is
derived).  Two exception classes that are not related via subclassing are never
equivalent, even if they have the same name.</p>
<p id="index-1">The built-in exceptions listed below can be generated by the interpreter or
built-in functions.  Except where mentioned, they have an &#8220;associated value&#8221;
indicating the detailed cause of the error.  This may be a string or a tuple of
several items of information (e.g., an error code and a string explaining the
code).  The associated value is usually passed as arguments to the exception
class&#8217;s constructor.</p>
<p>User code can raise built-in exceptions.  This can be used to test an exception
handler or to report an error condition &#8220;just like&#8221; the situation in which the
interpreter raises the same exception; but beware that there is nothing to
prevent user code from raising an inappropriate error.</p>
<p>The built-in exception classes can be sub-classed to define new exceptions;
programmers are encouraged to at least derive new exceptions from the
<a class="reference internal" href="#Exception" title="Exception"><tt class="xref py py-exc docutils literal"><span class="pre">Exception</span></tt></a> class and not <a class="reference internal" href="#BaseException" title="BaseException"><tt class="xref py py-exc docutils literal"><span class="pre">BaseException</span></tt></a>.  More information on
defining exceptions is available in the Python Tutorial under
<a class="reference internal" href="../tutorial/errors.html#tut-userexceptions"><em>User-defined Exceptions</em></a>.</p>
<p>The following exceptions are used mostly as base classes for other exceptions.</p>
<dl class="exception">
<dt id="BaseException">
<em class="property">exception </em><tt class="descname">BaseException</tt><a class="headerlink" href="#BaseException" title="Permalink to this definition">¶</a></dt>
<dd><p>The base class for all built-in exceptions.  It is not meant to be directly
inherited by user-defined classes (for that, use <a class="reference internal" href="#Exception" title="Exception"><tt class="xref py py-exc docutils literal"><span class="pre">Exception</span></tt></a>).  If
<a class="reference internal" href="functions.html#bytes" title="bytes"><tt class="xref py py-func docutils literal"><span class="pre">bytes()</span></tt></a> or <a class="reference internal" href="functions.html#str" title="str"><tt class="xref py py-func docutils literal"><span class="pre">str()</span></tt></a> is called on an instance of this class, the
representation of the argument(s) to the instance are returned, or the empty
string when there were no arguments.</p>
<dl class="attribute">
<dt id="BaseException.args">
<tt class="descname">args</tt><a class="headerlink" href="#BaseException.args" title="Permalink to this definition">¶</a></dt>
<dd><p>The tuple of arguments given to the exception constructor.  Some built-in
exceptions (like <a class="reference internal" href="#IOError" title="IOError"><tt class="xref py py-exc docutils literal"><span class="pre">IOError</span></tt></a>) expect a certain number of arguments and
assign a special meaning to the elements of this tuple, while others are
usually called only with a single string giving an error message.</p>
</dd></dl>

<dl class="method">
<dt id="BaseException.with_traceback">
<tt class="descname">with_traceback</tt><big>(</big><em>tb</em><big>)</big><a class="headerlink" href="#BaseException.with_traceback" title="Permalink to this definition">¶</a></dt>
<dd><p>This method sets <em>tb</em> as the new traceback for the exception and returns
the exception object.  It is usually used in exception handling code like
this:</p>
<div class="highlight-python3"><div class="highlight"><pre><span class="k">try</span><span class="p">:</span>
    <span class="o">...</span>
<span class="k">except</span> <span class="n">SomeException</span><span class="p">:</span>
    <span class="n">tb</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="mi">2</span><span class="p">]</span>
    <span class="k">raise</span> <span class="n">OtherException</span><span class="p">(</span><span class="o">...</span><span class="p">)</span><span class="o">.</span><span class="n">with_traceback</span><span class="p">(</span><span class="n">tb</span><span class="p">)</span>
</pre></div>
</div>
</dd></dl>

</dd></dl>

<dl class="exception">
<dt id="Exception">
<em class="property">exception </em><tt class="descname">Exception</tt><a class="headerlink" href="#Exception" title="Permalink to this definition">¶</a></dt>
<dd><p>All built-in, non-system-exiting exceptions are derived from this class.  All
user-defined exceptions should also be derived from this class.</p>
</dd></dl>

<dl class="exception">
<dt id="ArithmeticError">
<em class="property">exception </em><tt class="descname">ArithmeticError</tt><a class="headerlink" href="#ArithmeticError" title="Permalink to this definition">¶</a></dt>
<dd><p>The base class for those built-in exceptions that are raised for various
arithmetic errors: <a class="reference internal" href="#OverflowError" title="OverflowError"><tt class="xref py py-exc docutils literal"><span class="pre">OverflowError</span></tt></a>, <a class="reference internal" href="#ZeroDivisionError" title="ZeroDivisionError"><tt class="xref py py-exc docutils literal"><span class="pre">ZeroDivisionError</span></tt></a>,
<a class="reference internal" href="#FloatingPointError" title="FloatingPointError"><tt class="xref py py-exc docutils literal"><span class="pre">FloatingPointError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="BufferError">
<em class="property">exception </em><tt class="descname">BufferError</tt><a class="headerlink" href="#BufferError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a <a class="reference internal" href="../c-api/buffer.html#bufferobjects"><em>buffer</em></a> related operation cannot be
performed.</p>
</dd></dl>

<dl class="exception">
<dt id="LookupError">
<em class="property">exception </em><tt class="descname">LookupError</tt><a class="headerlink" href="#LookupError" title="Permalink to this definition">¶</a></dt>
<dd><p>The base class for the exceptions that are raised when a key or index used on
a mapping or sequence is invalid: <a class="reference internal" href="#IndexError" title="IndexError"><tt class="xref py py-exc docutils literal"><span class="pre">IndexError</span></tt></a>, <a class="reference internal" href="#KeyError" title="KeyError"><tt class="xref py py-exc docutils literal"><span class="pre">KeyError</span></tt></a>.  This
can be raised directly by <a class="reference internal" href="codecs.html#codecs.lookup" title="codecs.lookup"><tt class="xref py py-func docutils literal"><span class="pre">codecs.lookup()</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="EnvironmentError">
<em class="property">exception </em><tt class="descname">EnvironmentError</tt><a class="headerlink" href="#EnvironmentError" title="Permalink to this definition">¶</a></dt>
<dd><p>The base class for exceptions that can occur outside the Python system:
<a class="reference internal" href="#IOError" title="IOError"><tt class="xref py py-exc docutils literal"><span class="pre">IOError</span></tt></a>, <a class="reference internal" href="#OSError" title="OSError"><tt class="xref py py-exc docutils literal"><span class="pre">OSError</span></tt></a>.  When exceptions of this type are created with a
2-tuple, the first item is available on the instance&#8217;s <a class="reference internal" href="errno.html#module-errno" title="errno: Standard errno system symbols."><tt class="xref py py-attr docutils literal"><span class="pre">errno</span></tt></a> attribute
(it is assumed to be an error number), and the second item is available on the
<tt class="xref py py-attr docutils literal"><span class="pre">strerror</span></tt> attribute (it is usually the associated error message).  The
tuple itself is also available on the <tt class="xref py py-attr docutils literal"><span class="pre">args</span></tt> attribute.</p>
<p>When an <a class="reference internal" href="#EnvironmentError" title="EnvironmentError"><tt class="xref py py-exc docutils literal"><span class="pre">EnvironmentError</span></tt></a> exception is instantiated with a 3-tuple, the
first two items are available as above, while the third item is available on the
<tt class="xref py py-attr docutils literal"><span class="pre">filename</span></tt> attribute.  However, for backwards compatibility, the
<tt class="xref py py-attr docutils literal"><span class="pre">args</span></tt> attribute contains only a 2-tuple of the first two constructor
arguments.</p>
<p>The <tt class="xref py py-attr docutils literal"><span class="pre">filename</span></tt> attribute is <tt class="xref docutils literal"><span class="pre">None</span></tt> when this exception is created with
other than 3 arguments.  The <a class="reference internal" href="errno.html#module-errno" title="errno: Standard errno system symbols."><tt class="xref py py-attr docutils literal"><span class="pre">errno</span></tt></a> and <tt class="xref py py-attr docutils literal"><span class="pre">strerror</span></tt> attributes are
also <tt class="xref docutils literal"><span class="pre">None</span></tt> when the instance was created with other than 2 or 3 arguments.
In this last case, <tt class="xref py py-attr docutils literal"><span class="pre">args</span></tt> contains the verbatim constructor arguments as a
tuple.</p>
</dd></dl>

<p>The following exceptions are the exceptions that are usually raised.</p>
<dl class="exception">
<dt id="AssertionError">
<em class="property">exception </em><tt class="descname">AssertionError</tt><a class="headerlink" href="#AssertionError" title="Permalink to this definition">¶</a></dt>
<dd><p id="index-2">Raised when an <a class="reference internal" href="../reference/simple_stmts.html#assert"><tt class="xref std std-keyword docutils literal"><span class="pre">assert</span></tt></a> statement fails.</p>
</dd></dl>

<dl class="exception">
<dt id="AttributeError">
<em class="property">exception </em><tt class="descname">AttributeError</tt><a class="headerlink" href="#AttributeError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when an attribute reference (see <a class="reference internal" href="../reference/expressions.html#attribute-references"><em>Attribute references</em></a>) or
assignment fails.  (When an object does not support attribute references or
attribute assignments at all, <a class="reference internal" href="#TypeError" title="TypeError"><tt class="xref py py-exc docutils literal"><span class="pre">TypeError</span></tt></a> is raised.)</p>
</dd></dl>

<dl class="exception">
<dt id="EOFError">
<em class="property">exception </em><tt class="descname">EOFError</tt><a class="headerlink" href="#EOFError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when one of the built-in functions (<a class="reference internal" href="functions.html#input" title="input"><tt class="xref py py-func docutils literal"><span class="pre">input()</span></tt></a> or <tt class="xref py py-func docutils literal"><span class="pre">raw_input()</span></tt>)
hits an end-of-file condition (EOF) without reading any data. (N.B.: the
<tt class="xref py py-meth docutils literal"><span class="pre">file.read()</span></tt> and <tt class="xref py py-meth docutils literal"><span class="pre">file.readline()</span></tt> methods return an empty string
when they hit EOF.)</p>
</dd></dl>

<dl class="exception">
<dt id="FloatingPointError">
<em class="property">exception </em><tt class="descname">FloatingPointError</tt><a class="headerlink" href="#FloatingPointError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a floating point operation fails.  This exception is always defined,
but can only be raised when Python is configured with the
<tt class="docutils literal"><span class="pre">--with-fpectl</span></tt> option, or the <tt class="xref py py-const docutils literal"><span class="pre">WANT_SIGFPE_HANDLER</span></tt> symbol is
defined in the <tt class="file docutils literal"><span class="pre">pyconfig.h</span></tt> file.</p>
</dd></dl>

<dl class="exception">
<dt id="GeneratorExit">
<em class="property">exception </em><tt class="descname">GeneratorExit</tt><a class="headerlink" href="#GeneratorExit" title="Permalink to this definition">¶</a></dt>
<dd><p>Raise when a <a class="reference internal" href="../glossary.html#term-generator"><em class="xref std std-term">generator</em></a>&#8216;s <tt class="xref py py-meth docutils literal"><span class="pre">close()</span></tt> method is called.  It
directly inherits from <a class="reference internal" href="#BaseException" title="BaseException"><tt class="xref py py-exc docutils literal"><span class="pre">BaseException</span></tt></a> instead of <a class="reference internal" href="#Exception" title="Exception"><tt class="xref py py-exc docutils literal"><span class="pre">Exception</span></tt></a> since
it is technically not an error.</p>
</dd></dl>

<dl class="exception">
<dt id="IOError">
<em class="property">exception </em><tt class="descname">IOError</tt><a class="headerlink" href="#IOError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when an I/O operation (such as the built-in <a class="reference internal" href="functions.html#print" title="print"><tt class="xref py py-func docutils literal"><span class="pre">print()</span></tt></a> or
<a class="reference internal" href="functions.html#open" title="open"><tt class="xref py py-func docutils literal"><span class="pre">open()</span></tt></a> functions or a method of a <a class="reference internal" href="../glossary.html#term-file-object"><em class="xref std std-term">file object</em></a>) fails for an
I/O-related reason, e.g., &#8220;file not found&#8221; or &#8220;disk full&#8221;.</p>
<p>This class is derived from <a class="reference internal" href="#EnvironmentError" title="EnvironmentError"><tt class="xref py py-exc docutils literal"><span class="pre">EnvironmentError</span></tt></a>.  See the discussion above
for more information on exception instance attributes.</p>
</dd></dl>

<dl class="exception">
<dt id="ImportError">
<em class="property">exception </em><tt class="descname">ImportError</tt><a class="headerlink" href="#ImportError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when an <a class="reference internal" href="../reference/simple_stmts.html#import"><tt class="xref std std-keyword docutils literal"><span class="pre">import</span></tt></a> statement fails to find the module definition
or when a <tt class="docutils literal"><span class="pre">from</span> <span class="pre">...</span> <span class="pre">import</span></tt> fails to find a name that is to be imported.</p>
</dd></dl>

<dl class="exception">
<dt id="IndexError">
<em class="property">exception </em><tt class="descname">IndexError</tt><a class="headerlink" href="#IndexError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a sequence subscript is out of range.  (Slice indices are
silently truncated to fall in the allowed range; if an index is not an
integer, <a class="reference internal" href="#TypeError" title="TypeError"><tt class="xref py py-exc docutils literal"><span class="pre">TypeError</span></tt></a> is raised.)</p>
</dd></dl>

<dl class="exception">
<dt id="KeyError">
<em class="property">exception </em><tt class="descname">KeyError</tt><a class="headerlink" href="#KeyError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a mapping (dictionary) key is not found in the set of existing keys.</p>
</dd></dl>

<dl class="exception">
<dt id="KeyboardInterrupt">
<em class="property">exception </em><tt class="descname">KeyboardInterrupt</tt><a class="headerlink" href="#KeyboardInterrupt" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when the user hits the interrupt key (normally <tt class="kbd docutils literal"><span class="pre">Control-C</span></tt> or
<tt class="kbd docutils literal"><span class="pre">Delete</span></tt>).  During execution, a check for interrupts is made
regularly. The exception inherits from <a class="reference internal" href="#BaseException" title="BaseException"><tt class="xref py py-exc docutils literal"><span class="pre">BaseException</span></tt></a> so as to not be
accidentally caught by code that catches <a class="reference internal" href="#Exception" title="Exception"><tt class="xref py py-exc docutils literal"><span class="pre">Exception</span></tt></a> and thus prevent
the interpreter from exiting.</p>
</dd></dl>

<dl class="exception">
<dt id="MemoryError">
<em class="property">exception </em><tt class="descname">MemoryError</tt><a class="headerlink" href="#MemoryError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when an operation runs out of memory but the situation may still be
rescued (by deleting some objects).  The associated value is a string indicating
what kind of (internal) operation ran out of memory. Note that because of the
underlying memory management architecture (C&#8217;s <tt class="xref c c-func docutils literal"><span class="pre">malloc()</span></tt> function), the
interpreter may not always be able to completely recover from this situation; it
nevertheless raises an exception so that a stack traceback can be printed, in
case a run-away program was the cause.</p>
</dd></dl>

<dl class="exception">
<dt id="NameError">
<em class="property">exception </em><tt class="descname">NameError</tt><a class="headerlink" href="#NameError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a local or global name is not found.  This applies only to
unqualified names.  The associated value is an error message that includes the
name that could not be found.</p>
</dd></dl>

<dl class="exception">
<dt id="NotImplementedError">
<em class="property">exception </em><tt class="descname">NotImplementedError</tt><a class="headerlink" href="#NotImplementedError" title="Permalink to this definition">¶</a></dt>
<dd><p>This exception is derived from <a class="reference internal" href="#RuntimeError" title="RuntimeError"><tt class="xref py py-exc docutils literal"><span class="pre">RuntimeError</span></tt></a>.  In user defined base
classes, abstract methods should raise this exception when they require derived
classes to override the method.</p>
</dd></dl>

<dl class="exception">
<dt id="OSError">
<em class="property">exception </em><tt class="descname">OSError</tt><a class="headerlink" href="#OSError" title="Permalink to this definition">¶</a></dt>
<dd><p id="index-3">This exception is derived from <a class="reference internal" href="#EnvironmentError" title="EnvironmentError"><tt class="xref py py-exc docutils literal"><span class="pre">EnvironmentError</span></tt></a>.  It is raised when a
function returns a system-related error (not for illegal argument types or
other incidental errors).  The <a class="reference internal" href="errno.html#module-errno" title="errno: Standard errno system symbols."><tt class="xref py py-attr docutils literal"><span class="pre">errno</span></tt></a> attribute is a numeric error
code from <tt class="xref c c-data docutils literal"><span class="pre">errno</span></tt>, and the <tt class="xref py py-attr docutils literal"><span class="pre">strerror</span></tt> attribute is the
corresponding string, as would be printed by the C function <tt class="xref c c-func docutils literal"><span class="pre">perror()</span></tt>.
See the module <a class="reference internal" href="errno.html#module-errno" title="errno: Standard errno system symbols."><tt class="xref py py-mod docutils literal"><span class="pre">errno</span></tt></a>, which contains names for the error codes defined
by the underlying operating system.</p>
<p>For exceptions that involve a file system path (such as <tt class="xref py py-func docutils literal"><span class="pre">chdir()</span></tt> or
<tt class="xref py py-func docutils literal"><span class="pre">unlink()</span></tt>), the exception instance will contain a third attribute,
<tt class="xref py py-attr docutils literal"><span class="pre">filename</span></tt>, which is the file name passed to the function.</p>
</dd></dl>

<dl class="exception">
<dt id="OverflowError">
<em class="property">exception </em><tt class="descname">OverflowError</tt><a class="headerlink" href="#OverflowError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when the result of an arithmetic operation is too large to be
represented.  This cannot occur for integers (which would rather raise
<a class="reference internal" href="#MemoryError" title="MemoryError"><tt class="xref py py-exc docutils literal"><span class="pre">MemoryError</span></tt></a> than give up).  Because of the lack of standardization of
floating point exception handling in C, most floating point operations also
aren&#8217;t checked.</p>
</dd></dl>

<dl class="exception">
<dt id="ReferenceError">
<em class="property">exception </em><tt class="descname">ReferenceError</tt><a class="headerlink" href="#ReferenceError" title="Permalink to this definition">¶</a></dt>
<dd><p>This exception is raised when a weak reference proxy, created by the
<a class="reference internal" href="weakref.html#weakref.proxy" title="weakref.proxy"><tt class="xref py py-func docutils literal"><span class="pre">weakref.proxy()</span></tt></a> function, is used to access an attribute of the referent
after it has been garbage collected. For more information on weak references,
see the <a class="reference internal" href="weakref.html#module-weakref" title="weakref: Support for weak references and weak dictionaries."><tt class="xref py py-mod docutils literal"><span class="pre">weakref</span></tt></a> module.</p>
</dd></dl>

<dl class="exception">
<dt id="RuntimeError">
<em class="property">exception </em><tt class="descname">RuntimeError</tt><a class="headerlink" href="#RuntimeError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when an error is detected that doesn&#8217;t fall in any of the other
categories.  The associated value is a string indicating what precisely went
wrong.  (This exception is mostly a relic from a previous version of the
interpreter; it is not used very much any more.)</p>
</dd></dl>

<dl class="exception">
<dt id="StopIteration">
<em class="property">exception </em><tt class="descname">StopIteration</tt><a class="headerlink" href="#StopIteration" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised by built-in function <a class="reference internal" href="functions.html#next" title="next"><tt class="xref py py-func docutils literal"><span class="pre">next()</span></tt></a> and an <a class="reference internal" href="../glossary.html#term-iterator"><em class="xref std std-term">iterator</em></a>&#8216;s
<tt class="xref py py-meth docutils literal"><span class="pre">__next__()</span></tt> method to signal that there are no further values.</p>
</dd></dl>

<dl class="exception">
<dt id="SyntaxError">
<em class="property">exception </em><tt class="descname">SyntaxError</tt><a class="headerlink" href="#SyntaxError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when the parser encounters a syntax error.  This may occur in an
<a class="reference internal" href="../reference/simple_stmts.html#import"><tt class="xref std std-keyword docutils literal"><span class="pre">import</span></tt></a> statement, in a call to the built-in functions <a class="reference internal" href="functions.html#exec" title="exec"><tt class="xref py py-func docutils literal"><span class="pre">exec()</span></tt></a>
or <a class="reference internal" href="functions.html#eval" title="eval"><tt class="xref py py-func docutils literal"><span class="pre">eval()</span></tt></a>, or when reading the initial script or standard input
(also interactively).</p>
<p>Instances of this class have attributes <tt class="xref py py-attr docutils literal"><span class="pre">filename</span></tt>, <tt class="xref py py-attr docutils literal"><span class="pre">lineno</span></tt>,
<tt class="xref py py-attr docutils literal"><span class="pre">offset</span></tt> and <tt class="xref py py-attr docutils literal"><span class="pre">text</span></tt> for easier access to the details.  <a class="reference internal" href="functions.html#str" title="str"><tt class="xref py py-func docutils literal"><span class="pre">str()</span></tt></a>
of the exception instance returns only the message.</p>
</dd></dl>

<dl class="exception">
<dt id="IndentationError">
<em class="property">exception </em><tt class="descname">IndentationError</tt><a class="headerlink" href="#IndentationError" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for syntax errors related to incorrect indentation.  This is a
subclass of <a class="reference internal" href="#SyntaxError" title="SyntaxError"><tt class="xref py py-exc docutils literal"><span class="pre">SyntaxError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="TabError">
<em class="property">exception </em><tt class="descname">TabError</tt><a class="headerlink" href="#TabError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when indentation contains an inconsistent use of tabs and spaces.
This is a subclass of <a class="reference internal" href="#IndentationError" title="IndentationError"><tt class="xref py py-exc docutils literal"><span class="pre">IndentationError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="SystemError">
<em class="property">exception </em><tt class="descname">SystemError</tt><a class="headerlink" href="#SystemError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when the interpreter finds an internal error, but the situation does not
look so serious to cause it to abandon all hope. The associated value is a
string indicating what went wrong (in low-level terms).</p>
<p>You should report this to the author or maintainer of your Python interpreter.
Be sure to report the version of the Python interpreter (<tt class="docutils literal"><span class="pre">sys.version</span></tt>; it is
also printed at the start of an interactive Python session), the exact error
message (the exception&#8217;s associated value) and if possible the source of the
program that triggered the error.</p>
</dd></dl>

<dl class="exception">
<dt id="SystemExit">
<em class="property">exception </em><tt class="descname">SystemExit</tt><a class="headerlink" href="#SystemExit" title="Permalink to this definition">¶</a></dt>
<dd><p>This exception is raised by the <a class="reference internal" href="sys.html#sys.exit" title="sys.exit"><tt class="xref py py-func docutils literal"><span class="pre">sys.exit()</span></tt></a> function.  When it is not
handled, the Python interpreter exits; no stack traceback is printed.  If the
associated value is an integer, it specifies the system exit status (passed
to C&#8217;s <tt class="xref c c-func docutils literal"><span class="pre">exit()</span></tt> function); if it is <tt class="xref docutils literal"><span class="pre">None</span></tt>, the exit status is zero;
if it has another type (such as a string), the object&#8217;s value is printed and
the exit status is one.</p>
<p>Instances have an attribute <a class="reference internal" href="code.html#module-code" title="code: Facilities to implement read-eval-print loops."><tt class="xref py py-attr docutils literal"><span class="pre">code</span></tt></a> which is set to the proposed exit
status or error message (defaulting to <tt class="xref docutils literal"><span class="pre">None</span></tt>). Also, this exception derives
directly from <a class="reference internal" href="#BaseException" title="BaseException"><tt class="xref py py-exc docutils literal"><span class="pre">BaseException</span></tt></a> and not <a class="reference internal" href="#Exception" title="Exception"><tt class="xref py py-exc docutils literal"><span class="pre">Exception</span></tt></a>, since it is not
technically an error.</p>
<p>A call to <a class="reference internal" href="sys.html#sys.exit" title="sys.exit"><tt class="xref py py-func docutils literal"><span class="pre">sys.exit()</span></tt></a> is translated into an exception so that clean-up
handlers (<a class="reference internal" href="../reference/compound_stmts.html#finally"><tt class="xref std std-keyword docutils literal"><span class="pre">finally</span></tt></a> clauses of <a class="reference internal" href="../reference/compound_stmts.html#try"><tt class="xref std std-keyword docutils literal"><span class="pre">try</span></tt></a> statements) can be
executed, and so that a debugger can execute a script without running the risk
of losing control.  The <a class="reference internal" href="os.html#os._exit" title="os._exit"><tt class="xref py py-func docutils literal"><span class="pre">os._exit()</span></tt></a> function can be used if it is
absolutely positively necessary to exit immediately (for example, in the child
process after a call to <tt class="xref py py-func docutils literal"><span class="pre">fork()</span></tt>).</p>
<p>The exception inherits from <a class="reference internal" href="#BaseException" title="BaseException"><tt class="xref py py-exc docutils literal"><span class="pre">BaseException</span></tt></a> instead of <a class="reference internal" href="#Exception" title="Exception"><tt class="xref py py-exc docutils literal"><span class="pre">Exception</span></tt></a> so
that it is not accidentally caught by code that catches <a class="reference internal" href="#Exception" title="Exception"><tt class="xref py py-exc docutils literal"><span class="pre">Exception</span></tt></a>.  This
allows the exception to properly propagate up and cause the interpreter to exit.</p>
</dd></dl>

<dl class="exception">
<dt id="TypeError">
<em class="property">exception </em><tt class="descname">TypeError</tt><a class="headerlink" href="#TypeError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when an operation or function is applied to an object of inappropriate
type.  The associated value is a string giving details about the type mismatch.</p>
</dd></dl>

<dl class="exception">
<dt id="UnboundLocalError">
<em class="property">exception </em><tt class="descname">UnboundLocalError</tt><a class="headerlink" href="#UnboundLocalError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a reference is made to a local variable in a function or method, but
no value has been bound to that variable.  This is a subclass of
<a class="reference internal" href="#NameError" title="NameError"><tt class="xref py py-exc docutils literal"><span class="pre">NameError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="UnicodeError">
<em class="property">exception </em><tt class="descname">UnicodeError</tt><a class="headerlink" href="#UnicodeError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a Unicode-related encoding or decoding error occurs.  It is a
subclass of <a class="reference internal" href="#ValueError" title="ValueError"><tt class="xref py py-exc docutils literal"><span class="pre">ValueError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="UnicodeEncodeError">
<em class="property">exception </em><tt class="descname">UnicodeEncodeError</tt><a class="headerlink" href="#UnicodeEncodeError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a Unicode-related error occurs during encoding.  It is a subclass of
<a class="reference internal" href="#UnicodeError" title="UnicodeError"><tt class="xref py py-exc docutils literal"><span class="pre">UnicodeError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="UnicodeDecodeError">
<em class="property">exception </em><tt class="descname">UnicodeDecodeError</tt><a class="headerlink" href="#UnicodeDecodeError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a Unicode-related error occurs during decoding.  It is a subclass of
<a class="reference internal" href="#UnicodeError" title="UnicodeError"><tt class="xref py py-exc docutils literal"><span class="pre">UnicodeError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="UnicodeTranslateError">
<em class="property">exception </em><tt class="descname">UnicodeTranslateError</tt><a class="headerlink" href="#UnicodeTranslateError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a Unicode-related error occurs during translating.  It is a subclass
of <a class="reference internal" href="#UnicodeError" title="UnicodeError"><tt class="xref py py-exc docutils literal"><span class="pre">UnicodeError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="ValueError">
<em class="property">exception </em><tt class="descname">ValueError</tt><a class="headerlink" href="#ValueError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a built-in operation or function receives an argument that has the
right type but an inappropriate value, and the situation is not described by a
more precise exception such as <a class="reference internal" href="#IndexError" title="IndexError"><tt class="xref py py-exc docutils literal"><span class="pre">IndexError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="VMSError">
<em class="property">exception </em><tt class="descname">VMSError</tt><a class="headerlink" href="#VMSError" title="Permalink to this definition">¶</a></dt>
<dd><p>Only available on VMS.  Raised when a VMS-specific error occurs.</p>
</dd></dl>

<dl class="exception">
<dt id="WindowsError">
<em class="property">exception </em><tt class="descname">WindowsError</tt><a class="headerlink" href="#WindowsError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when a Windows-specific error occurs or when the error number does not
correspond to an <tt class="xref c c-data docutils literal"><span class="pre">errno</span></tt> value.  The <tt class="xref py py-attr docutils literal"><span class="pre">winerror</span></tt> and
<tt class="xref py py-attr docutils literal"><span class="pre">strerror</span></tt> values are created from the return values of the
<tt class="xref c c-func docutils literal"><span class="pre">GetLastError()</span></tt> and <tt class="xref c c-func docutils literal"><span class="pre">FormatMessage()</span></tt> functions from the Windows
Platform API. The <a class="reference internal" href="errno.html#module-errno" title="errno: Standard errno system symbols."><tt class="xref py py-attr docutils literal"><span class="pre">errno</span></tt></a> value maps the <tt class="xref py py-attr docutils literal"><span class="pre">winerror</span></tt> value to
corresponding <tt class="docutils literal"><span class="pre">errno.h</span></tt> values. This is a subclass of <a class="reference internal" href="#OSError" title="OSError"><tt class="xref py py-exc docutils literal"><span class="pre">OSError</span></tt></a>.</p>
</dd></dl>

<dl class="exception">
<dt id="ZeroDivisionError">
<em class="property">exception </em><tt class="descname">ZeroDivisionError</tt><a class="headerlink" href="#ZeroDivisionError" title="Permalink to this definition">¶</a></dt>
<dd><p>Raised when the second argument of a division or modulo operation is zero.  The
associated value is a string indicating the type of the operands and the
operation.</p>
</dd></dl>

<p>The following exceptions are used as warning categories; see the <a class="reference internal" href="warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><tt class="xref py py-mod docutils literal"><span class="pre">warnings</span></tt></a>
module for more information.</p>
<dl class="exception">
<dt id="Warning">
<em class="property">exception </em><tt class="descname">Warning</tt><a class="headerlink" href="#Warning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warning categories.</p>
</dd></dl>

<dl class="exception">
<dt id="UserWarning">
<em class="property">exception </em><tt class="descname">UserWarning</tt><a class="headerlink" href="#UserWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings generated by user code.</p>
</dd></dl>

<dl class="exception">
<dt id="DeprecationWarning">
<em class="property">exception </em><tt class="descname">DeprecationWarning</tt><a class="headerlink" href="#DeprecationWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings about deprecated features.</p>
</dd></dl>

<dl class="exception">
<dt id="PendingDeprecationWarning">
<em class="property">exception </em><tt class="descname">PendingDeprecationWarning</tt><a class="headerlink" href="#PendingDeprecationWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings about features which will be deprecated in the future.</p>
</dd></dl>

<dl class="exception">
<dt id="SyntaxWarning">
<em class="property">exception </em><tt class="descname">SyntaxWarning</tt><a class="headerlink" href="#SyntaxWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings about dubious syntax</p>
</dd></dl>

<dl class="exception">
<dt id="RuntimeWarning">
<em class="property">exception </em><tt class="descname">RuntimeWarning</tt><a class="headerlink" href="#RuntimeWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings about dubious runtime behavior.</p>
</dd></dl>

<dl class="exception">
<dt id="FutureWarning">
<em class="property">exception </em><tt class="descname">FutureWarning</tt><a class="headerlink" href="#FutureWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings about constructs that will change semantically in the
future.</p>
</dd></dl>

<dl class="exception">
<dt id="ImportWarning">
<em class="property">exception </em><tt class="descname">ImportWarning</tt><a class="headerlink" href="#ImportWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings about probable mistakes in module imports.</p>
</dd></dl>

<dl class="exception">
<dt id="UnicodeWarning">
<em class="property">exception </em><tt class="descname">UnicodeWarning</tt><a class="headerlink" href="#UnicodeWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings related to Unicode.</p>
</dd></dl>

<dl class="exception">
<dt id="BytesWarning">
<em class="property">exception </em><tt class="descname">BytesWarning</tt><a class="headerlink" href="#BytesWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings related to <a class="reference internal" href="functions.html#bytes" title="bytes"><tt class="xref py py-class docutils literal"><span class="pre">bytes</span></tt></a> and <tt class="xref py py-class docutils literal"><span class="pre">buffer</span></tt>.</p>
</dd></dl>

<dl class="exception">
<dt id="ResourceWarning">
<em class="property">exception </em><tt class="descname">ResourceWarning</tt><a class="headerlink" href="#ResourceWarning" title="Permalink to this definition">¶</a></dt>
<dd><p>Base class for warnings related to resource usage.</p>
<p class="versionadded">
<span class="versionmodified">New in version 3.2.</span></p>
</dd></dl>

<div class="section" id="exception-hierarchy">
<h2>5.1. Exception hierarchy<a class="headerlink" href="#exception-hierarchy" title="Permalink to this headline">¶</a></h2>
<p>The class hierarchy for built-in exceptions is:</p>
<div class="highlight-python3"><div class="highlight"><pre><span class="ne">BaseException</span>
 <span class="o">+--</span> <span class="ne">SystemExit</span>
 <span class="o">+--</span> <span class="ne">KeyboardInterrupt</span>
 <span class="o">+--</span> <span class="ne">GeneratorExit</span>
 <span class="o">+--</span> <span class="ne">Exception</span>
      <span class="o">+--</span> <span class="ne">StopIteration</span>
      <span class="o">+--</span> <span class="ne">ArithmeticError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">FloatingPointError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">OverflowError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">ZeroDivisionError</span>
      <span class="o">+--</span> <span class="ne">AssertionError</span>
      <span class="o">+--</span> <span class="ne">AttributeError</span>
      <span class="o">+--</span> <span class="ne">BufferError</span>
      <span class="o">+--</span> <span class="ne">EnvironmentError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">IOError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">OSError</span>
      <span class="o">|</span>         <span class="o">+--</span> <span class="ne">WindowsError</span> <span class="p">(</span><span class="n">Windows</span><span class="p">)</span>
      <span class="o">|</span>         <span class="o">+--</span> <span class="ne">VMSError</span> <span class="p">(</span><span class="n">VMS</span><span class="p">)</span>
      <span class="o">+--</span> <span class="ne">EOFError</span>
      <span class="o">+--</span> <span class="ne">ImportError</span>
      <span class="o">+--</span> <span class="ne">LookupError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">IndexError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">KeyError</span>
      <span class="o">+--</span> <span class="ne">MemoryError</span>
      <span class="o">+--</span> <span class="ne">NameError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">UnboundLocalError</span>
      <span class="o">+--</span> <span class="ne">ReferenceError</span>
      <span class="o">+--</span> <span class="ne">RuntimeError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">NotImplementedError</span>
      <span class="o">+--</span> <span class="ne">SyntaxError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">IndentationError</span>
      <span class="o">|</span>         <span class="o">+--</span> <span class="ne">TabError</span>
      <span class="o">+--</span> <span class="ne">SystemError</span>
      <span class="o">+--</span> <span class="ne">TypeError</span>
      <span class="o">+--</span> <span class="ne">ValueError</span>
      <span class="o">|</span>    <span class="o">+--</span> <span class="ne">UnicodeError</span>
      <span class="o">|</span>         <span class="o">+--</span> <span class="ne">UnicodeDecodeError</span>
      <span class="o">|</span>         <span class="o">+--</span> <span class="ne">UnicodeEncodeError</span>
      <span class="o">|</span>         <span class="o">+--</span> <span class="ne">UnicodeTranslateError</span>
      <span class="o">+--</span> <span class="ne">Warning</span>
           <span class="o">+--</span> <span class="ne">DeprecationWarning</span>
           <span class="o">+--</span> <span class="ne">PendingDeprecationWarning</span>
           <span class="o">+--</span> <span class="ne">RuntimeWarning</span>
           <span class="o">+--</span> <span class="ne">SyntaxWarning</span>
           <span class="o">+--</span> <span class="ne">UserWarning</span>
           <span class="o">+--</span> <span class="ne">FutureWarning</span>
           <span class="o">+--</span> <span class="ne">ImportWarning</span>
           <span class="o">+--</span> <span class="ne">UnicodeWarning</span>
           <span class="o">+--</span> <span class="ne">BytesWarning</span>
           <span class="o">+--</span> <span class="n">ResourceWarning</span>
</pre></div>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">5. Built-in Exceptions</a><ul>
<li><a class="reference internal" href="#exception-hierarchy">5.1. Exception hierarchy</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="stdtypes.html"
                        title="previous chapter">4. Built-in Types</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="strings.html"
                        title="next chapter">6. String Services</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
  <li><a href="../bugs.html">Report a Bug</a></li>
  <li><a href="../_sources/library/exceptions.txt"
         rel="nofollow">Show Source</a></li>
</ul>

<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" size="18" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <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="strings.html" title="6. String Services"
             >next</a> |</li>
        <li class="right" >
          <a href="stdtypes.html" title="4. Built-in Types"
             >previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">Python v3.2.2 documentation</a> &raquo;</li>

          <li><a href="index.html" >The Python Standard Library</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
    &copy; <a href="../copyright.html">Copyright</a> 1990-2011, Python Software Foundation.
    <br />
    The Python Software Foundation is a non-profit corporation.  
    <a href="http://www.python.org/psf/donations/">Please donate.</a>
    <br />
    Last updated on Sep 04, 2011.
    <a href="../bugs.html">Found a bug</a>?
    <br />
    Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
    </div>

  </body>
</html>