2007-08-15 11:28:01 -03:00
|
|
|
.. _bltin-exceptions:
|
|
|
|
|
|
|
|
Built-in Exceptions
|
|
|
|
===================
|
|
|
|
|
|
|
|
.. module:: exceptions
|
|
|
|
:synopsis: Standard exception classes.
|
|
|
|
|
|
|
|
|
|
|
|
Exceptions should be class objects. The exceptions are defined in the module
|
|
|
|
:mod:`exceptions`. This module never needs to be imported explicitly: the
|
|
|
|
exceptions are provided in the built-in namespace as well as the
|
|
|
|
:mod:`exceptions` module.
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
statement: try
|
|
|
|
statement: except
|
|
|
|
|
|
|
|
For class exceptions, in a :keyword:`try` statement with an :keyword:`except`
|
|
|
|
clause that mentions a particular class, that clause also handles any exception
|
|
|
|
classes derived from that class (but not exception classes from which *it* is
|
|
|
|
derived). Two exception classes that are not related via subclassing are never
|
|
|
|
equivalent, even if they have the same name.
|
|
|
|
|
|
|
|
.. index:: statement: raise
|
|
|
|
|
|
|
|
The built-in exceptions listed below can be generated by the interpreter or
|
|
|
|
built-in functions. Except where mentioned, they have an "associated value"
|
|
|
|
indicating the detailed cause of the error. This may be a string or a tuple
|
|
|
|
containing several items of information (e.g., an error code and a string
|
|
|
|
explaining the code). The associated value is the second argument to the
|
|
|
|
:keyword:`raise` statement. If the exception class is derived from the standard
|
|
|
|
root class :exc:`BaseException`, the associated value is present as the
|
|
|
|
exception instance's :attr:`args` attribute.
|
|
|
|
|
|
|
|
User code can raise built-in exceptions. This can be used to test an exception
|
|
|
|
handler or to report an error condition "just like" 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.
|
|
|
|
|
|
|
|
The built-in exception classes can be sub-classed to define new exceptions;
|
|
|
|
programmers are encouraged to at least derive new exceptions from the
|
|
|
|
:exc:`Exception` class and not :exc:`BaseException`. More information on
|
|
|
|
defining exceptions is available in the Python Tutorial under
|
|
|
|
:ref:`tut-userexceptions`.
|
|
|
|
|
|
|
|
The following exceptions are only used as base classes for other exceptions.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: BaseException
|
|
|
|
|
|
|
|
The base class for all built-in exceptions. It is not meant to be directly
|
|
|
|
inherited by user-defined classes (for that use :exc:`Exception`). If
|
|
|
|
:func:`str` or :func:`unicode` is called on an instance of this class, the
|
Merged revisions 69578-69580,69901,69907,69994,70022-70023,70025-70026,70166,70273,70275,70342,70386-70387,70389-70390,70392-70393,70395,70397,70400,70418 via svnmerge
........
r69578 | georg.brandl | 2009-02-13 12:03:59 +0100 (Fr, 13 Feb 2009) | 1 line
#3694: add test for fix committed in r66693.
........
r69579 | georg.brandl | 2009-02-13 12:06:59 +0100 (Fr, 13 Feb 2009) | 2 lines
Fix warnings GCC emits where the argument of PyErr_Format is a single variable.
........
r69580 | georg.brandl | 2009-02-13 12:10:04 +0100 (Fr, 13 Feb 2009) | 2 lines
Fix warnings GCC emits where the argument of PyErr_Format is a single variable.
........
r69901 | georg.brandl | 2009-02-23 12:24:46 +0100 (Mo, 23 Feb 2009) | 2 lines
#5349: C++ pure virtuals can also have an implementation.
........
r69907 | georg.brandl | 2009-02-23 19:33:48 +0100 (Mo, 23 Feb 2009) | 1 line
Fix grammar.
........
r69994 | georg.brandl | 2009-02-26 18:36:26 +0100 (Do, 26 Feb 2009) | 1 line
Document that setting sys.py3kwarning wont do anything.
........
r70022 | georg.brandl | 2009-02-27 17:23:18 +0100 (Fr, 27 Feb 2009) | 1 line
#5361: fix typo.
........
r70023 | georg.brandl | 2009-02-27 17:39:26 +0100 (Fr, 27 Feb 2009) | 1 line
#5363: fix cmpfiles() docs. Another instance where a prose description is twice as long as the code.
........
r70025 | georg.brandl | 2009-02-27 17:52:55 +0100 (Fr, 27 Feb 2009) | 1 line
#5344: fix punctuation.
........
r70026 | georg.brandl | 2009-02-27 17:59:03 +0100 (Fr, 27 Feb 2009) | 1 line
#5365: add quick look conversion table for different time representations.
........
r70166 | georg.brandl | 2009-03-04 19:24:41 +0100 (Mi, 04 Mär 2009) | 2 lines
Remove obsolete stuff from string module docs.
........
r70273 | georg.brandl | 2009-03-09 15:25:07 +0100 (Mo, 09 Mär 2009) | 2 lines
#5458: add a note when we started to raise RuntimeErrors.
........
r70275 | georg.brandl | 2009-03-09 17:35:48 +0100 (Mo, 09 Mär 2009) | 2 lines
Add missing space.
........
r70342 | georg.brandl | 2009-03-13 20:03:58 +0100 (Fr, 13 Mär 2009) | 1 line
#5486: typos.
........
r70386 | georg.brandl | 2009-03-15 22:32:06 +0100 (So, 15 Mär 2009) | 1 line
#5496: fix docstring of lookup().
........
r70387 | georg.brandl | 2009-03-15 22:37:16 +0100 (So, 15 Mär 2009) | 1 line
#5493: clarify __nonzero__ docs.
........
r70389 | georg.brandl | 2009-03-15 22:43:38 +0100 (So, 15 Mär 2009) | 1 line
Fix a small nit in the error message if bool() falls back on __len__ and it returns the wrong type: it would tell the user that __nonzero__ should return bool or int.
........
r70390 | georg.brandl | 2009-03-15 22:44:43 +0100 (So, 15 Mär 2009) | 1 line
#5491: clarify nested() semantics.
........
r70392 | georg.brandl | 2009-03-15 22:46:00 +0100 (So, 15 Mär 2009) | 1 line
#5488: add missing struct member.
........
r70393 | georg.brandl | 2009-03-15 22:47:42 +0100 (So, 15 Mär 2009) | 1 line
#5478: fix copy-paste oversight in function signature.
........
r70395 | georg.brandl | 2009-03-15 22:51:48 +0100 (So, 15 Mär 2009) | 1 line
#5276: document IDLESTARTUP and .Idle.py.
........
r70397 | georg.brandl | 2009-03-15 22:53:56 +0100 (So, 15 Mär 2009) | 1 line
#5469: add with statement to list of name-binding constructs.
........
r70400 | georg.brandl | 2009-03-15 22:59:37 +0100 (So, 15 Mär 2009) | 3 lines
Fix markup in re docs and give a mail address in regex howto, so that
the recommendation to send suggestions to the author can be followed.
........
r70418 | georg.brandl | 2009-03-16 20:42:03 +0100 (Mo, 16 Mär 2009) | 1 line
Add token markup.
........
2009-04-05 18:48:06 -03:00
|
|
|
representation of the argument(s) to the instance are returned or the empty
|
2007-08-15 11:28:01 -03:00
|
|
|
string when there were no arguments. All arguments are stored in :attr:`args`
|
|
|
|
as a tuple.
|
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: Exception
|
|
|
|
|
|
|
|
All built-in, non-system-exiting exceptions are derived from this class. All
|
|
|
|
user-defined exceptions should also be derived from this class.
|
|
|
|
|
|
|
|
.. versionchanged:: 2.5
|
|
|
|
Changed to inherit from :exc:`BaseException`.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: StandardError
|
|
|
|
|
|
|
|
The base class for all built-in exceptions except :exc:`StopIteration`,
|
|
|
|
:exc:`GeneratorExit`, :exc:`KeyboardInterrupt` and :exc:`SystemExit`.
|
|
|
|
:exc:`StandardError` itself is derived from :exc:`Exception`.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: ArithmeticError
|
|
|
|
|
|
|
|
The base class for those built-in exceptions that are raised for various
|
|
|
|
arithmetic errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`,
|
|
|
|
:exc:`FloatingPointError`.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: LookupError
|
|
|
|
|
Merged revisions 72558,72745,72750,72876,73042,73045-73048,73069,73089,73163,73186,73213,73215,73217,73257-73258,73260 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72558 | benjamin.peterson | 2009-05-11 01:52:09 +0200 (Mo, 11 Mai 2009) | 1 line
sys.setdefaultencoding() strikes me as a bad example
........
r72745 | benjamin.peterson | 2009-05-17 16:16:29 +0200 (So, 17 Mai 2009) | 1 line
ignore .rst files in sphinx its self
........
r72750 | benjamin.peterson | 2009-05-17 18:59:27 +0200 (So, 17 Mai 2009) | 1 line
chop off slash
........
r72876 | benjamin.peterson | 2009-05-23 22:59:09 +0200 (Sa, 23 Mai 2009) | 1 line
remove mention of old ctypes version
........
r73042 | benjamin.peterson | 2009-05-30 05:10:52 +0200 (Sa, 30 Mai 2009) | 1 line
no fdatasync on macos
........
r73045 | georg.brandl | 2009-05-30 09:26:04 +0200 (Sa, 30 Mai 2009) | 1 line
#6146: fix markup bug.
........
r73046 | georg.brandl | 2009-05-30 09:31:25 +0200 (Sa, 30 Mai 2009) | 1 line
Use preferred form of raising exceptions.
........
r73047 | georg.brandl | 2009-05-30 12:33:23 +0200 (Sa, 30 Mai 2009) | 1 line
Fix some more small markup problems.
........
r73048 | georg.brandl | 2009-05-30 12:34:25 +0200 (Sa, 30 Mai 2009) | 1 line
Fix markup problem.
........
r73069 | benjamin.peterson | 2009-05-31 02:42:42 +0200 (So, 31 Mai 2009) | 1 line
fix signature
........
r73089 | andrew.kuchling | 2009-06-01 02:14:19 +0200 (Mo, 01 Jun 2009) | 1 line
The class for regexes isn't called RegexObject any more; correct the text
........
r73163 | georg.brandl | 2009-06-03 09:25:35 +0200 (Mi, 03 Jun 2009) | 1 line
Use the preferred form of raise statements in the docs.
........
r73186 | georg.brandl | 2009-06-03 23:21:09 +0200 (Mi, 03 Jun 2009) | 1 line
#6174: fix indentation in code example.
........
r73213 | georg.brandl | 2009-06-04 12:15:57 +0200 (Do, 04 Jun 2009) | 1 line
#5967: note that the C slicing APIs do not support negative indices.
........
r73215 | georg.brandl | 2009-06-04 12:22:31 +0200 (Do, 04 Jun 2009) | 1 line
#6176: fix man page section for flock(2).
........
r73217 | georg.brandl | 2009-06-04 12:27:21 +0200 (Do, 04 Jun 2009) | 1 line
#6175: document that inet_aton supports alternate input formats with less than three dots.
........
r73257 | georg.brandl | 2009-06-06 19:50:05 +0200 (Sa, 06 Jun 2009) | 1 line
#6211: elaborate a bit on ways to call the function.
........
r73258 | georg.brandl | 2009-06-06 19:51:31 +0200 (Sa, 06 Jun 2009) | 1 line
#6204: use a real reference instead of "see later".
........
r73260 | georg.brandl | 2009-06-06 20:21:58 +0200 (Sa, 06 Jun 2009) | 1 line
#6224: s/JPython/Jython/, and remove one link to a module nine years old.
........
2009-10-27 11:19:50 -03:00
|
|
|
The base class for the exceptions that are raised when a key or index used on
|
|
|
|
a mapping or sequence is invalid: :exc:`IndexError`, :exc:`KeyError`. This
|
|
|
|
can be raised directly by :func:`codecs.lookup`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. exception:: EnvironmentError
|
|
|
|
|
|
|
|
The base class for exceptions that can occur outside the Python system:
|
|
|
|
:exc:`IOError`, :exc:`OSError`. When exceptions of this type are created with a
|
|
|
|
2-tuple, the first item is available on the instance's :attr:`errno` attribute
|
|
|
|
(it is assumed to be an error number), and the second item is available on the
|
|
|
|
:attr:`strerror` attribute (it is usually the associated error message). The
|
|
|
|
tuple itself is also available on the :attr:`args` attribute.
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.2
|
|
|
|
|
|
|
|
When an :exc:`EnvironmentError` exception is instantiated with a 3-tuple, the
|
|
|
|
first two items are available as above, while the third item is available on the
|
|
|
|
:attr:`filename` attribute. However, for backwards compatibility, the
|
|
|
|
:attr:`args` attribute contains only a 2-tuple of the first two constructor
|
|
|
|
arguments.
|
|
|
|
|
|
|
|
The :attr:`filename` attribute is ``None`` when this exception is created with
|
|
|
|
other than 3 arguments. The :attr:`errno` and :attr:`strerror` attributes are
|
|
|
|
also ``None`` when the instance was created with other than 2 or 3 arguments.
|
|
|
|
In this last case, :attr:`args` contains the verbatim constructor arguments as a
|
|
|
|
tuple.
|
|
|
|
|
|
|
|
The following exceptions are the exceptions that are actually raised.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: AssertionError
|
|
|
|
|
|
|
|
.. index:: statement: assert
|
|
|
|
|
|
|
|
Raised when an :keyword:`assert` statement fails.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: AttributeError
|
|
|
|
|
2007-12-29 06:57:00 -04:00
|
|
|
Raised when an attribute reference (see :ref:`attribute-references`) or
|
|
|
|
assignment fails. (When an object does not support attribute references or
|
|
|
|
attribute assignments at all, :exc:`TypeError` is raised.)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. exception:: EOFError
|
|
|
|
|
|
|
|
Raised when one of the built-in functions (:func:`input` or :func:`raw_input`)
|
|
|
|
hits an end-of-file condition (EOF) without reading any data. (N.B.: the
|
2007-12-29 06:57:00 -04:00
|
|
|
:meth:`file.read` and :meth:`file.readline` methods return an empty string
|
2007-08-15 11:28:01 -03:00
|
|
|
when they hit EOF.)
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: FloatingPointError
|
|
|
|
|
|
|
|
Raised when a floating point operation fails. This exception is always defined,
|
|
|
|
but can only be raised when Python is configured with the
|
|
|
|
:option:`--with-fpectl` option, or the :const:`WANT_SIGFPE_HANDLER` symbol is
|
|
|
|
defined in the :file:`pyconfig.h` file.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: GeneratorExit
|
|
|
|
|
2007-10-21 07:52:38 -03:00
|
|
|
Raise when a :term:`generator`\'s :meth:`close` method is called. It
|
2007-12-03 16:01:02 -04:00
|
|
|
directly inherits from :exc:`BaseException` instead of :exc:`StandardError` since
|
2007-10-21 07:52:38 -03:00
|
|
|
it is technically not an error.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
|
2007-12-03 16:01:02 -04:00
|
|
|
.. versionchanged:: 2.6
|
|
|
|
Changed to inherit from :exc:`BaseException`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. exception:: IOError
|
|
|
|
|
|
|
|
Raised when an I/O operation (such as a :keyword:`print` statement, the built-in
|
|
|
|
:func:`open` function or a method of a file object) fails for an I/O-related
|
|
|
|
reason, e.g., "file not found" or "disk full".
|
|
|
|
|
|
|
|
This class is derived from :exc:`EnvironmentError`. See the discussion above
|
|
|
|
for more information on exception instance attributes.
|
|
|
|
|
2007-09-09 20:36:46 -03:00
|
|
|
.. versionchanged:: 2.6
|
|
|
|
Changed :exc:`socket.error` to use this as a base class.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. exception:: ImportError
|
|
|
|
|
|
|
|
Raised when an :keyword:`import` statement fails to find the module definition
|
|
|
|
or when a ``from ... import`` fails to find a name that is to be imported.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: IndexError
|
|
|
|
|
|
|
|
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 a plain integer,
|
|
|
|
:exc:`TypeError` is raised.)
|
|
|
|
|
2007-12-29 06:57:00 -04:00
|
|
|
.. XXX xref to sequences
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. exception:: KeyError
|
|
|
|
|
|
|
|
Raised when a mapping (dictionary) key is not found in the set of existing keys.
|
|
|
|
|
2007-12-29 06:57:00 -04:00
|
|
|
.. XXX xref to mapping objects?
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. exception:: KeyboardInterrupt
|
|
|
|
|
|
|
|
Raised when the user hits the interrupt key (normally :kbd:`Control-C` or
|
|
|
|
:kbd:`Delete`). During execution, a check for interrupts is made regularly.
|
|
|
|
Interrupts typed when a built-in function :func:`input` or :func:`raw_input` is
|
|
|
|
waiting for input also raise this exception. The exception inherits from
|
|
|
|
:exc:`BaseException` so as to not be accidentally caught by code that catches
|
|
|
|
:exc:`Exception` and thus prevent the interpreter from exiting.
|
|
|
|
|
|
|
|
.. versionchanged:: 2.5
|
|
|
|
Changed to inherit from :exc:`BaseException`.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: MemoryError
|
|
|
|
|
|
|
|
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's :cfunc:`malloc` 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.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: NameError
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: NotImplementedError
|
|
|
|
|
|
|
|
This exception is derived from :exc:`RuntimeError`. In user defined base
|
|
|
|
classes, abstract methods should raise this exception when they require derived
|
|
|
|
classes to override the method.
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.2
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: OSError
|
|
|
|
|
2008-01-12 06:53:29 -04:00
|
|
|
.. index:: module: errno
|
|
|
|
|
|
|
|
This exception is derived from :exc:`EnvironmentError`. It is raised when a
|
|
|
|
function returns a system-related error (not for illegal argument types or
|
|
|
|
other incidental errors). The :attr:`errno` attribute is a numeric error
|
|
|
|
code from :cdata:`errno`, and the :attr:`strerror` attribute is the
|
|
|
|
corresponding string, as would be printed by the C function :cfunc:`perror`.
|
|
|
|
See the module :mod:`errno`, which contains names for the error codes defined
|
|
|
|
by the underlying operating system.
|
|
|
|
|
|
|
|
For exceptions that involve a file system path (such as :func:`chdir` or
|
|
|
|
:func:`unlink`), the exception instance will contain a third attribute,
|
|
|
|
:attr:`filename`, which is the file name passed to the function.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-01-12 12:11:09 -04:00
|
|
|
.. versionadded:: 1.5.2
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. exception:: OverflowError
|
|
|
|
|
|
|
|
Raised when the result of an arithmetic operation is too large to be
|
|
|
|
represented. This cannot occur for long integers (which would rather raise
|
2008-05-11 07:55:59 -03:00
|
|
|
:exc:`MemoryError` than give up) and for most operations with plain integers,
|
|
|
|
which return a long integer instead. Because of the lack of standardization
|
|
|
|
of floating point exception handling in C, most floating point operations
|
|
|
|
also aren't checked.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. exception:: ReferenceError
|
|
|
|
|
|
|
|
This exception is raised when a weak reference proxy, created by the
|
|
|
|
:func:`weakref.proxy` function, is used to access an attribute of the referent
|
|
|
|
after it has been garbage collected. For more information on weak references,
|
|
|
|
see the :mod:`weakref` module.
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
Previously known as the :exc:`weakref.ReferenceError` exception.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: RuntimeError
|
|
|
|
|
|
|
|
Raised when an error is detected that doesn'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.)
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: StopIteration
|
|
|
|
|
2009-10-27 11:36:50 -03:00
|
|
|
Raised by an :term:`iterator`\'s :meth:`~iterator.next` method to signal that
|
|
|
|
there are no further values. This is derived from :exc:`Exception` rather
|
|
|
|
than :exc:`StandardError`, since this is not considered an error in its
|
|
|
|
normal application.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: SyntaxError
|
|
|
|
|
|
|
|
Raised when the parser encounters a syntax error. This may occur in an
|
|
|
|
:keyword:`import` statement, in an :keyword:`exec` statement, in a call to the
|
|
|
|
built-in function :func:`eval` or :func:`input`, or when reading the initial
|
|
|
|
script or standard input (also interactively).
|
|
|
|
|
|
|
|
Instances of this class have attributes :attr:`filename`, :attr:`lineno`,
|
|
|
|
:attr:`offset` and :attr:`text` for easier access to the details. :func:`str`
|
|
|
|
of the exception instance returns only the message.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: SystemError
|
|
|
|
|
|
|
|
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).
|
|
|
|
|
|
|
|
You should report this to the author or maintainer of your Python interpreter.
|
|
|
|
Be sure to report the version of the Python interpreter (``sys.version``; it is
|
|
|
|
also printed at the start of an interactive Python session), the exact error
|
|
|
|
message (the exception's associated value) and if possible the source of the
|
|
|
|
program that triggered the error.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: SystemExit
|
|
|
|
|
|
|
|
This exception is raised by the :func:`sys.exit` function. When it is not
|
|
|
|
handled, the Python interpreter exits; no stack traceback is printed. If the
|
|
|
|
associated value is a plain integer, it specifies the system exit status (passed
|
|
|
|
to C's :cfunc:`exit` function); if it is ``None``, the exit status is zero; if
|
|
|
|
it has another type (such as a string), the object's value is printed and the
|
|
|
|
exit status is one.
|
|
|
|
|
|
|
|
Instances have an attribute :attr:`code` which is set to the proposed exit
|
|
|
|
status or error message (defaulting to ``None``). Also, this exception derives
|
|
|
|
directly from :exc:`BaseException` and not :exc:`StandardError`, since it is not
|
|
|
|
technically an error.
|
|
|
|
|
|
|
|
A call to :func:`sys.exit` is translated into an exception so that clean-up
|
|
|
|
handlers (:keyword:`finally` clauses of :keyword:`try` statements) can be
|
|
|
|
executed, and so that a debugger can execute a script without running the risk
|
|
|
|
of losing control. The :func:`os._exit` function can be used if it is
|
|
|
|
absolutely positively necessary to exit immediately (for example, in the child
|
|
|
|
process after a call to :func:`fork`).
|
|
|
|
|
|
|
|
The exception inherits from :exc:`BaseException` instead of :exc:`StandardError`
|
|
|
|
or :exc:`Exception` so that it is not accidentally caught by code that catches
|
|
|
|
:exc:`Exception`. This allows the exception to properly propagate up and cause
|
|
|
|
the interpreter to exit.
|
|
|
|
|
|
|
|
.. versionchanged:: 2.5
|
|
|
|
Changed to inherit from :exc:`BaseException`.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: TypeError
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: UnboundLocalError
|
|
|
|
|
|
|
|
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
|
|
|
|
:exc:`NameError`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: UnicodeError
|
|
|
|
|
|
|
|
Raised when a Unicode-related encoding or decoding error occurs. It is a
|
|
|
|
subclass of :exc:`ValueError`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: UnicodeEncodeError
|
|
|
|
|
|
|
|
Raised when a Unicode-related error occurs during encoding. It is a subclass of
|
|
|
|
:exc:`UnicodeError`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: UnicodeDecodeError
|
|
|
|
|
|
|
|
Raised when a Unicode-related error occurs during decoding. It is a subclass of
|
|
|
|
:exc:`UnicodeError`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: UnicodeTranslateError
|
|
|
|
|
|
|
|
Raised when a Unicode-related error occurs during translating. It is a subclass
|
|
|
|
of :exc:`UnicodeError`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: ValueError
|
|
|
|
|
|
|
|
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 :exc:`IndexError`.
|
|
|
|
|
|
|
|
|
Merged revisions 68582,68718,68720-68721,68724-68727,68859,68973,69288-69289,69293,69295,69297-69301,69409,69414,69570,69573,69576,69728-69730,69769,69776,69803-69805,69840,69896 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68582 | georg.brandl | 2009-01-13 23:14:01 +0100 (Di, 13 Jan 2009) | 2 lines
Use assertRaises.
........
r68718 | georg.brandl | 2009-01-18 11:42:35 +0100 (So, 18 Jan 2009) | 1 line
#4976: union() and intersection() take multiple args, but talk about "the other".
........
r68720 | georg.brandl | 2009-01-18 11:45:22 +0100 (So, 18 Jan 2009) | 1 line
#4974: fix redundant mention of lists and tuples.
........
r68721 | georg.brandl | 2009-01-18 11:48:16 +0100 (So, 18 Jan 2009) | 1 line
#4914: trunc is in math.
........
r68724 | georg.brandl | 2009-01-18 14:24:10 +0100 (So, 18 Jan 2009) | 1 line
#4979: correct result range for some random functions.
........
r68725 | georg.brandl | 2009-01-18 14:47:26 +0100 (So, 18 Jan 2009) | 1 line
#4857: fix augmented assignment target spec.
........
r68726 | georg.brandl | 2009-01-18 15:41:52 +0100 (So, 18 Jan 2009) | 1 line
#4923: clarify what was added.
........
r68727 | georg.brandl | 2009-01-18 19:25:30 +0100 (So, 18 Jan 2009) | 1 line
#4986: augassigns are not expressions.
........
r68859 | georg.brandl | 2009-01-22 19:29:28 +0100 (Do, 22 Jan 2009) | 2 lines
Clarify wording.
........
r68973 | georg.brandl | 2009-01-26 22:29:38 +0100 (Mo, 26 Jan 2009) | 2 lines
Copy over docs on advanced role features from Sphinx docs.
........
r69288 | georg.brandl | 2009-02-05 11:30:57 +0100 (Do, 05 Feb 2009) | 1 line
#5153: fix typo in example.
........
r69289 | georg.brandl | 2009-02-05 11:37:07 +0100 (Do, 05 Feb 2009) | 1 line
#5144: document that PySys_SetArgv prepends the script directory (or the empty string) to sys.path.
........
r69293 | georg.brandl | 2009-02-05 11:59:28 +0100 (Do, 05 Feb 2009) | 1 line
#5059: fix example.
........
r69295 | georg.brandl | 2009-02-05 12:23:47 +0100 (Do, 05 Feb 2009) | 1 line
PyErr_PrintEx is also in 2.x...
........
r69297 | georg.brandl | 2009-02-05 12:32:18 +0100 (Do, 05 Feb 2009) | 1 line
#5015: document PythonHome API functions.
........
r69298 | georg.brandl | 2009-02-05 12:33:21 +0100 (Do, 05 Feb 2009) | 1 line
#4827: fix callback example.
........
r69299 | georg.brandl | 2009-02-05 12:35:28 +0100 (Do, 05 Feb 2009) | 1 line
#4820: use correct module for ctypes.util.
........
r69300 | georg.brandl | 2009-02-05 12:38:23 +0100 (Do, 05 Feb 2009) | 1 line
#4563: disable alpha and roman lists, fixes wrong formatting of contributor list.
........
r69301 | georg.brandl | 2009-02-05 12:40:35 +0100 (Do, 05 Feb 2009) | 1 line
#5031: fix Thread.daemon property docs.
........
r69409 | georg.brandl | 2009-02-07 13:21:17 +0100 (Sa, 07 Feb 2009) | 1 line
#5174: fix wrong file closing in example.
........
r69414 | georg.brandl | 2009-02-07 19:49:54 +0100 (Sa, 07 Feb 2009) | 1 line
make "super only for new-style classes" a note.
........
r69570 | georg.brandl | 2009-02-13 11:40:14 +0100 (Fr, 13 Feb 2009) | 1 line
#4894: document "newurl" parameter to redirect_request().
........
r69573 | georg.brandl | 2009-02-13 11:44:17 +0100 (Fr, 13 Feb 2009) | 1 line
#3734: document complex coercing behavior better.
........
r69576 | georg.brandl | 2009-02-13 11:56:50 +0100 (Fr, 13 Feb 2009) | 1 line
#1661108: note that urlsafe encoded string can contain "=".
........
r69728 | georg.brandl | 2009-02-18 01:22:55 +0100 (Mi, 18 Feb 2009) | 2 lines
#5297: fix example.
........
r69729 | georg.brandl | 2009-02-18 01:25:13 +0100 (Mi, 18 Feb 2009) | 2 lines
#5296: sequence -> iterable.
........
r69730 | georg.brandl | 2009-02-18 01:31:36 +0100 (Mi, 18 Feb 2009) | 2 lines
#5268: mention VMSError.
........
r69769 | georg.brandl | 2009-02-19 09:30:06 +0100 (Do, 19 Feb 2009) | 1 line
#5310, #3558: fix operator precedence table.
........
r69776 | georg.brandl | 2009-02-19 17:34:51 +0100 (Do, 19 Feb 2009) | 2 lines
#5317: update IronPython URL.
........
r69803 | georg.brandl | 2009-02-20 08:48:21 +0100 (Fr, 20 Feb 2009) | 1 line
#5327: fix a broken link by joining it.
........
r69804 | georg.brandl | 2009-02-20 09:22:21 +0100 (Fr, 20 Feb 2009) | 1 line
At least separate imports from other statements.
........
r69805 | georg.brandl | 2009-02-20 09:45:47 +0100 (Fr, 20 Feb 2009) | 2 lines
Fix punctuation.
........
r69840 | georg.brandl | 2009-02-21 20:09:40 +0100 (Sa, 21 Feb 2009) | 1 line
#5338, #5339: two types in the API manual.
........
r69896 | georg.brandl | 2009-02-23 11:24:23 +0100 (Mo, 23 Feb 2009) | 1 line
#5348: format() converts all kinds of values.
........
2009-02-23 06:41:11 -04:00
|
|
|
.. exception:: VMSError
|
|
|
|
|
|
|
|
Only available on VMS. Raised when a VMS-specific error occurs.
|
|
|
|
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. exception:: WindowsError
|
|
|
|
|
|
|
|
Raised when a Windows-specific error occurs or when the error number does not
|
|
|
|
correspond to an :cdata:`errno` value. The :attr:`winerror` and
|
|
|
|
:attr:`strerror` values are created from the return values of the
|
|
|
|
:cfunc:`GetLastError` and :cfunc:`FormatMessage` functions from the Windows
|
|
|
|
Platform API. The :attr:`errno` value maps the :attr:`winerror` value to
|
|
|
|
corresponding ``errno.h`` values. This is a subclass of :exc:`OSError`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
.. versionchanged:: 2.5
|
|
|
|
Previous versions put the :cfunc:`GetLastError` codes into :attr:`errno`.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: ZeroDivisionError
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
The following exceptions are used as warning categories; see the :mod:`warnings`
|
|
|
|
module for more information.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: Warning
|
|
|
|
|
|
|
|
Base class for warning categories.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: UserWarning
|
|
|
|
|
|
|
|
Base class for warnings generated by user code.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: DeprecationWarning
|
|
|
|
|
|
|
|
Base class for warnings about deprecated features.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: PendingDeprecationWarning
|
|
|
|
|
|
|
|
Base class for warnings about features which will be deprecated in the future.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: SyntaxWarning
|
|
|
|
|
|
|
|
Base class for warnings about dubious syntax
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: RuntimeWarning
|
|
|
|
|
|
|
|
Base class for warnings about dubious runtime behavior.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: FutureWarning
|
|
|
|
|
|
|
|
Base class for warnings about constructs that will change semantically in the
|
|
|
|
future.
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: ImportWarning
|
|
|
|
|
|
|
|
Base class for warnings about probable mistakes in module imports.
|
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: UnicodeWarning
|
|
|
|
|
|
|
|
Base class for warnings related to Unicode.
|
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
|
|
|
|
|
2009-07-21 11:37:38 -03:00
|
|
|
Exception hierarchy
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
The class hierarchy for built-in exceptions is:
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. literalinclude:: ../../Lib/test/exception_hierarchy.txt
|