mirror of
				https://github.com/python/cpython.git
				synced 2025-10-29 17:38:56 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			648 lines
		
	
	
	
		
			21 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			648 lines
		
	
	
	
		
			21 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. _bltin-exceptions:
 | |
| 
 | |
| Built-in Exceptions
 | |
| ===================
 | |
| 
 | |
| .. index::
 | |
|    statement: try
 | |
|    statement: except
 | |
| 
 | |
| In Python, all exceptions must be instances of a class that derives from
 | |
| :class:`BaseException`.  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 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's constructor.
 | |
| 
 | |
| 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`.
 | |
| 
 | |
| When raising (or re-raising) an exception in an :keyword:`except` clause
 | |
| :attr:`__context__` is automatically set to the last exception caught; if the
 | |
| new exception is not handled the traceback that is eventually displayed will
 | |
| include the originating exception(s) and the final exception.
 | |
| 
 | |
| When raising a new exception (rather than using a bare ``raise`` to re-raise
 | |
| the exception currently being handled), the implicit exception context can be
 | |
| supplemented with an explicit cause by using :keyword:`from` with
 | |
| :keyword:`raise`::
 | |
| 
 | |
|    raise new_exc from original_exc
 | |
| 
 | |
| The expression following :keyword:`from` must be an exception or ``None``. It
 | |
| will be set as :attr:`__cause__` on the raised exception. Setting
 | |
| :attr:`__cause__` also implicitly sets the :attr:`__suppress_context__`
 | |
| attribute to ``True``, so that using ``raise new_exc from None``
 | |
| effectively replaces the old exception with the new one for display
 | |
| purposes (e.g. converting :exc:`KeyError` to :exc:`AttributeError`, while
 | |
| leaving the old exception available in :attr:`__context__` for introspection
 | |
| when debugging.
 | |
| 
 | |
| The default traceback display code shows these chained exceptions in
 | |
| addition to the traceback for the exception itself. An explicitly chained
 | |
| exception in :attr:`__cause__` is always shown when present. An implicitly
 | |
| chained exception in :attr:`__context__` is shown only if :attr:`__cause__`
 | |
| is :const:`None` and :attr:`__suppress_context__` is false.
 | |
| 
 | |
| In either case, the exception itself is always shown after any chained
 | |
| exceptions so that the final line of the traceback always shows the last
 | |
| exception that was raised.
 | |
| 
 | |
| 
 | |
| Base classes
 | |
| ------------
 | |
| 
 | |
| The following exceptions are used mostly 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` 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.
 | |
| 
 | |
|    .. attribute:: args
 | |
| 
 | |
|       The tuple of arguments given to the exception constructor.  Some built-in
 | |
|       exceptions (like :exc:`IOError`) 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.
 | |
| 
 | |
|    .. method:: with_traceback(tb)
 | |
| 
 | |
|       This method sets *tb* as the new traceback for the exception and returns
 | |
|       the exception object.  It is usually used in exception handling code like
 | |
|       this::
 | |
| 
 | |
|          try:
 | |
|              ...
 | |
|          except SomeException:
 | |
|              tb = sys.exc_info()[2]
 | |
|              raise OtherException(...).with_traceback(tb)
 | |
| 
 | |
| 
 | |
| .. 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.
 | |
| 
 | |
| 
 | |
| .. exception:: ArithmeticError
 | |
| 
 | |
|    The base class for those built-in exceptions that are raised for various
 | |
|    arithmetic errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`,
 | |
|    :exc:`FloatingPointError`.
 | |
| 
 | |
| 
 | |
| .. exception:: BufferError
 | |
| 
 | |
|    Raised when a :ref:`buffer <bufferobjects>` related operation cannot be
 | |
|    performed.
 | |
| 
 | |
| 
 | |
| .. exception:: LookupError
 | |
| 
 | |
|    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`.
 | |
| 
 | |
| 
 | |
| Concrete exceptions
 | |
| -------------------
 | |
| 
 | |
| The following exceptions are the exceptions that are usually raised.
 | |
| 
 | |
| .. exception:: AssertionError
 | |
| 
 | |
|    .. index:: statement: assert
 | |
| 
 | |
|    Raised when an :keyword:`assert` statement fails.
 | |
| 
 | |
| 
 | |
| .. exception:: AttributeError
 | |
| 
 | |
|    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.)
 | |
| 
 | |
| 
 | |
| .. 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
 | |
|    :meth:`file.read` and :meth:`file.readline` methods return an empty string
 | |
|    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
 | |
|    ``--with-fpectl`` option, or the :const:`WANT_SIGFPE_HANDLER` symbol is
 | |
|    defined in the :file:`pyconfig.h` file.
 | |
| 
 | |
| 
 | |
| .. exception:: GeneratorExit
 | |
| 
 | |
|    Raise when a :term:`generator`\'s :meth:`close` method is called.  It
 | |
|    directly inherits from :exc:`BaseException` instead of :exc:`Exception` since
 | |
|    it is technically not an error.
 | |
| 
 | |
| 
 | |
| .. 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.
 | |
| 
 | |
|    The :attr:`name` and :attr:`path` attributes can be set using keyword-only
 | |
|    arguments to the constructor. When set they represent the name of the module
 | |
|    that was attempted to be imported and the path to any file which triggered
 | |
|    the exception, respectively.
 | |
| 
 | |
|    .. versionchanged:: 3.3
 | |
|       Added the :attr:`name` and :attr:`path` attributes.
 | |
| 
 | |
| 
 | |
| .. 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 an
 | |
|    integer, :exc:`TypeError` is raised.)
 | |
| 
 | |
|    .. XXX xref to sequences
 | |
| 
 | |
| 
 | |
| .. exception:: KeyError
 | |
| 
 | |
|    Raised when a mapping (dictionary) key is not found in the set of existing keys.
 | |
| 
 | |
|    .. XXX xref to mapping objects?
 | |
| 
 | |
| 
 | |
| .. 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. 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.
 | |
| 
 | |
| 
 | |
| .. 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 :c:func:`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.
 | |
| 
 | |
| 
 | |
| .. exception:: OSError
 | |
| 
 | |
|    .. index:: module: errno
 | |
| 
 | |
|    This exception is raised when a system function returns a system-related
 | |
|    error, including I/O failures such as "file not found" or "disk full"
 | |
|    (not for illegal argument types or other incidental errors).  Often a
 | |
|    subclass of :exc:`OSError` will actually be raised as described in
 | |
|    `OS exceptions`_ below.  The :attr:`errno` attribute is a numeric error
 | |
|    code from the C variable :c:data:`errno`.
 | |
| 
 | |
|    Under Windows, the :attr:`winerror` attribute gives you the native
 | |
|    Windows error code.  The :attr:`errno` attribute is then an approximate
 | |
|    translation, in POSIX terms, of that native error code.
 | |
| 
 | |
|    Under all platforms, the :attr:`strerror` attribute is the corresponding
 | |
|    error message as provided by the operating system (as formatted by the C
 | |
|    functions :c:func:`perror` under POSIX, and :c:func:`FormatMessage`
 | |
|    Windows).
 | |
| 
 | |
|    For exceptions that involve a file system path (such as :func:`open` or
 | |
|    :func:`os.unlink`), the exception instance will contain an additional
 | |
|    attribute, :attr:`filename`, which is the file name passed to the function.
 | |
| 
 | |
|    .. versionchanged:: 3.3
 | |
|       :exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`,
 | |
|       :exc:`VMSError`, :exc:`socket.error`, :exc:`select.error` and
 | |
|       :exc:`mmap.error` have been merged into :exc:`OSError`.
 | |
| 
 | |
|    .. versionchanged:: 3.4
 | |
| 
 | |
|       The :attr:`filename` attribute is now the original file name passed to
 | |
|       the function, instead of the name encoded to or decoded from the
 | |
|       filesystem encoding.
 | |
| 
 | |
| 
 | |
| .. exception:: OverflowError
 | |
| 
 | |
|    Raised when the result of an arithmetic operation is too large to be
 | |
|    represented.  This cannot occur for integers (which would rather raise
 | |
|    :exc:`MemoryError` than give up).  Because of the lack of standardization of
 | |
|    floating point exception handling in C, most floating point operations also
 | |
|    aren't checked.
 | |
| 
 | |
| 
 | |
| .. 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.
 | |
| 
 | |
| 
 | |
| .. 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
 | |
| 
 | |
|    Raised by built-in function :func:`next` and an :term:`iterator`\'s
 | |
|    :meth:`~iterator.__next__` method to signal that there are no further
 | |
|    items produced by the iterator.
 | |
| 
 | |
|    The exception object has a single attribute :attr:`value`, which is
 | |
|    given as an argument when constructing the exception, and defaults
 | |
|    to :const:`None`.
 | |
| 
 | |
|    When a generator function returns, a new :exc:`StopIteration` instance is
 | |
|    raised, and the value returned by the function is used as the
 | |
|    :attr:`value` parameter to the constructor of the exception.
 | |
| 
 | |
|    .. versionchanged:: 3.3
 | |
|       Added ``value`` attribute and the ability for generator functions to
 | |
|       use it to return a value.
 | |
| 
 | |
| .. exception:: SyntaxError
 | |
| 
 | |
|    Raised when the parser encounters a syntax error.  This may occur in an
 | |
|    :keyword:`import` statement, in a call to the built-in functions :func:`exec`
 | |
|    or :func:`eval`, 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:: IndentationError
 | |
| 
 | |
|    Base class for syntax errors related to incorrect indentation.  This is a
 | |
|    subclass of :exc:`SyntaxError`.
 | |
| 
 | |
| 
 | |
| .. exception:: TabError
 | |
| 
 | |
|    Raised when indentation contains an inconsistent use of tabs and spaces.
 | |
|    This is a subclass of :exc:`IndentationError`.
 | |
| 
 | |
| 
 | |
| .. 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 an integer, it specifies the system exit status (passed
 | |
|    to C's :c:func:`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:`Exception`, 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:`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.
 | |
| 
 | |
| 
 | |
| .. 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`.
 | |
| 
 | |
| 
 | |
| .. exception:: UnicodeError
 | |
| 
 | |
|    Raised when a Unicode-related encoding or decoding error occurs.  It is a
 | |
|    subclass of :exc:`ValueError`.
 | |
| 
 | |
|    :exc:`UnicodeError` has attributes that describe the encoding or decoding
 | |
|    error.  For example, ``err.object[err.start:err.end]`` gives the particular
 | |
|    invalid input that the codec failed on.
 | |
| 
 | |
|    .. attribute:: encoding
 | |
| 
 | |
|        The name of the encoding that raised the error.
 | |
| 
 | |
|    .. attribute:: reason
 | |
| 
 | |
|        A string describing the specific codec error.
 | |
| 
 | |
|    .. attribute:: object
 | |
| 
 | |
|        The object the codec was attempting to encode or decode.
 | |
| 
 | |
|    .. attribute:: start
 | |
| 
 | |
|        The first index of invalid data in :attr:`object`.
 | |
| 
 | |
|    .. attribute:: end
 | |
| 
 | |
|        The index after the last invalid data in :attr:`object`.
 | |
| 
 | |
| 
 | |
| .. exception:: UnicodeEncodeError
 | |
| 
 | |
|    Raised when a Unicode-related error occurs during encoding.  It is a subclass of
 | |
|    :exc:`UnicodeError`.
 | |
| 
 | |
| 
 | |
| .. exception:: UnicodeDecodeError
 | |
| 
 | |
|    Raised when a Unicode-related error occurs during decoding.  It is a subclass of
 | |
|    :exc:`UnicodeError`.
 | |
| 
 | |
| 
 | |
| .. exception:: UnicodeTranslateError
 | |
| 
 | |
|    Raised when a Unicode-related error occurs during translating.  It is a subclass
 | |
|    of :exc:`UnicodeError`.
 | |
| 
 | |
| 
 | |
| .. 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`.
 | |
| 
 | |
| 
 | |
| .. 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 kept for compatibility with previous versions;
 | |
| starting from Python 3.3, they are aliases of :exc:`OSError`.
 | |
| 
 | |
| .. exception:: EnvironmentError
 | |
| 
 | |
| .. exception:: IOError
 | |
| 
 | |
| .. exception:: VMSError
 | |
| 
 | |
|    Only available on VMS.
 | |
| 
 | |
| .. exception:: WindowsError
 | |
| 
 | |
|    Only available on Windows.
 | |
| 
 | |
| 
 | |
| OS exceptions
 | |
| ^^^^^^^^^^^^^
 | |
| 
 | |
| The following exceptions are subclasses of :exc:`OSError`, they get raised
 | |
| depending on the system error code.
 | |
| 
 | |
| .. exception:: BlockingIOError
 | |
| 
 | |
|    Raised when an operation would block on an object (e.g. socket) set
 | |
|    for non-blocking operation.
 | |
|    Corresponds to :c:data:`errno` ``EAGAIN``, ``EALREADY``,
 | |
|    ``EWOULDBLOCK`` and ``EINPROGRESS``.
 | |
| 
 | |
|    In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have
 | |
|    one more attribute:
 | |
| 
 | |
|    .. attribute:: characters_written
 | |
| 
 | |
|       An integer containing the number of characters written to the stream
 | |
|       before it blocked.  This attribute is available when using the
 | |
|       buffered I/O classes from the :mod:`io` module.
 | |
| 
 | |
| .. exception:: ChildProcessError
 | |
| 
 | |
|    Raised when an operation on a child process failed.
 | |
|    Corresponds to :c:data:`errno` ``ECHILD``.
 | |
| 
 | |
| .. exception:: ConnectionError
 | |
| 
 | |
|    A base class for connection-related issues.
 | |
| 
 | |
|    Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`,
 | |
|    :exc:`ConnectionRefusedError` and :exc:`ConnectionResetError`.
 | |
| 
 | |
| .. exception:: BrokenPipeError
 | |
| 
 | |
|    A subclass of :exc:`ConnectionError`, raised when trying to write on a
 | |
|    pipe while the other end has been closed, or trying to write on a socket
 | |
|    which has been shutdown for writing.
 | |
|    Corresponds to :c:data:`errno` ``EPIPE`` and ``ESHUTDOWN``.
 | |
| 
 | |
| .. exception:: ConnectionAbortedError
 | |
| 
 | |
|    A subclass of :exc:`ConnectionError`, raised when a connection attempt
 | |
|    is aborted by the peer.
 | |
|    Corresponds to :c:data:`errno` ``ECONNABORTED``.
 | |
| 
 | |
| .. exception:: ConnectionRefusedError
 | |
| 
 | |
|    A subclass of :exc:`ConnectionError`, raised when a connection attempt
 | |
|    is refused by the peer.
 | |
|    Corresponds to :c:data:`errno` ``ECONNREFUSED``.
 | |
| 
 | |
| .. exception:: ConnectionResetError
 | |
| 
 | |
|    A subclass of :exc:`ConnectionError`, raised when a connection is
 | |
|    reset by the peer.
 | |
|    Corresponds to :c:data:`errno` ``ECONNRESET``.
 | |
| 
 | |
| .. exception:: FileExistsError
 | |
| 
 | |
|    Raised when trying to create a file or directory which already exists.
 | |
|    Corresponds to :c:data:`errno` ``EEXIST``.
 | |
| 
 | |
| .. exception:: FileNotFoundError
 | |
| 
 | |
|    Raised when a file or directory is requested but doesn't exist.
 | |
|    Corresponds to :c:data:`errno` ``ENOENT``.
 | |
| 
 | |
| .. exception:: InterruptedError
 | |
| 
 | |
|    Raised when a system call is interrupted by an incoming signal.
 | |
|    Corresponds to :c:data:`errno` ``EINTR``.
 | |
| 
 | |
| .. exception:: IsADirectoryError
 | |
| 
 | |
|    Raised when a file operation (such as :func:`os.remove`) is requested
 | |
|    on a directory.
 | |
|    Corresponds to :c:data:`errno` ``EISDIR``.
 | |
| 
 | |
| .. exception:: NotADirectoryError
 | |
| 
 | |
|    Raised when a directory operation (such as :func:`os.listdir`) is requested
 | |
|    on something which is not a directory.
 | |
|    Corresponds to :c:data:`errno` ``ENOTDIR``.
 | |
| 
 | |
| .. exception:: PermissionError
 | |
| 
 | |
|    Raised when trying to run an operation without the adequate access
 | |
|    rights - for example filesystem permissions.
 | |
|    Corresponds to :c:data:`errno` ``EACCES`` and ``EPERM``.
 | |
| 
 | |
| .. exception:: ProcessLookupError
 | |
| 
 | |
|    Raised when a given process doesn't exist.
 | |
|    Corresponds to :c:data:`errno` ``ESRCH``.
 | |
| 
 | |
| .. exception:: TimeoutError
 | |
| 
 | |
|    Raised when a system function timed out at the system level.
 | |
|    Corresponds to :c:data:`errno` ``ETIMEDOUT``.
 | |
| 
 | |
| .. versionadded:: 3.3
 | |
|    All the above :exc:`OSError` subclasses were added.
 | |
| 
 | |
| 
 | |
| .. seealso::
 | |
| 
 | |
|    :pep:`3151` - Reworking the OS and IO exception hierarchy
 | |
| 
 | |
| 
 | |
| Warnings
 | |
| --------
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| .. exception:: UnicodeWarning
 | |
| 
 | |
|    Base class for warnings related to Unicode.
 | |
| 
 | |
| 
 | |
| .. exception:: BytesWarning
 | |
| 
 | |
|    Base class for warnings related to :class:`bytes` and :class:`buffer`.
 | |
| 
 | |
| 
 | |
| .. exception:: ResourceWarning
 | |
| 
 | |
|    Base class for warnings related to resource usage.
 | |
| 
 | |
|    .. versionadded:: 3.2
 | |
| 
 | |
| 
 | |
| 
 | |
| Exception hierarchy
 | |
| -------------------
 | |
| 
 | |
| The class hierarchy for built-in exceptions is:
 | |
| 
 | |
| .. literalinclude:: ../../Lib/test/exception_hierarchy.txt
 | 
