mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 1947991c2f
			
		
	
	
		1947991c2f
		
	
	
	
	
		
			
			checkin of myformat.sty.
Change "\renewcommand{\indexsubitem}{(...)}" to "\setindexsubitem{(...)}"
everywhere.
Some other minor nits that I happened to come across.
		
	
			
		
			
				
	
	
		
			272 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			272 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \section{Built-in Exceptions}
 | |
| \label{module-exceptions}
 | |
| \stmodindex{exceptions}
 | |
| 
 | |
| Exceptions can be class objects or string objects.  While
 | |
| traditionally, most exceptions have been string objects, in Python
 | |
| 1.5, all standard exceptions have been converted to class objects,
 | |
| and users are encouraged to the the same.  The source code for those
 | |
| exceptions is present in the standard library module
 | |
| \code{exceptions}; this module never needs to be imported explicitly.
 | |
| 
 | |
| For backward compatibility, when Python is invoked with the \code{-X}
 | |
| option, the standard exceptions are strings.  This may be needed to
 | |
| run some code that breaks because of the different semantics of class
 | |
| based exceptions.  The \code{-X} option will become obsolete in future
 | |
| Python versions, so the recommended solution is to fix the code.
 | |
| 
 | |
| Two distinct string objects with the same value are considered different
 | |
| exceptions.  This is done to force programmers to use exception names
 | |
| rather than their string value when specifying exception handlers.
 | |
| The string value of all built-in exceptions is their name, but this is
 | |
| not a requirement for user-defined exceptions or exceptions defined by
 | |
| library modules.
 | |
| 
 | |
| For class exceptions, in a \code{try} statement with an \code{except}
 | |
| clause that mentions a particular class, that clause also handles
 | |
| any exception classes derived from that class (but not exception
 | |
| classes from which \emph{it} is derived).  Two exception classes
 | |
| that are not related via subclassing are never equivalent, even if
 | |
| they have the same name.
 | |
| \stindex{try}
 | |
| \stindex{except}
 | |
| 
 | |
| 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 \code{raise}
 | |
| statement.  For string exceptions, the associated value itself will be
 | |
| stored in the variable named as the second argument of the
 | |
| \code{except} clause (if any).  For class exceptions derived from
 | |
| the root class \code{Exception}, that variable receives the exception
 | |
| instance, and the associated value is present as the exception
 | |
| instance's \code{args} attribute; this is a tuple even if the second
 | |
| argument to \code{raise} was not (then it is a singleton tuple).
 | |
| \stindex{raise}
 | |
| 
 | |
| 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.
 | |
| 
 | |
| \setindexsubitem{(built-in exception base class)}
 | |
| 
 | |
| The following exceptions are only used as base classes for other
 | |
| exceptions.  When string-based standard exceptions are used, they
 | |
| are tuples containing the directly derived classes.
 | |
| 
 | |
| \begin{excdesc}{Exception}
 | |
| The root class for exceptions.  All built-in exceptions are derived
 | |
| from this class.  All user-defined exceptions should also be derived
 | |
| from this class, but this is not (yet) enforced.  The \code{str()}
 | |
| function, when applied to an instance of this class (or most derived
 | |
| classes) returns the string value of the argument or arguments, or an
 | |
| empty string if no arguments were given to the constructor.  When used
 | |
| as a sequence, this accesses the arguments given to the constructor
 | |
| (handy for backward compatibility with old code).
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{StandardError}
 | |
| The base class for built-in exceptions.  All built-in exceptions are
 | |
| derived from this class, which is itself derived from the root class
 | |
| \code{Exception}.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{ArithmeticError}
 | |
| The base class for those built-in exceptions that are raised for
 | |
| various arithmetic errors: \code{OverflowError},
 | |
| \code{ZeroDivisionError}, \code{FloatingPointError}.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{LookupError}
 | |
| The base class for thise exceptions that are raised when a key or
 | |
| index used on a mapping or sequence is invalid: \code{IndexError},
 | |
| \code{KeyError}.
 | |
| \end{excdesc}
 | |
| 
 | |
| \setindexsubitem{(built-in exception)}
 | |
| 
 | |
| The following exceptions are the exceptions that are actually raised.
 | |
| They are class objects, except when the \code{-X} option is used to
 | |
| revert back to string-based standard exceptions.
 | |
| 
 | |
| \begin{excdesc}{AssertionError}
 | |
| Raised when an \code{assert} statement fails.
 | |
| \stindex{assert}
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{AttributeError}
 | |
| % xref to attribute reference?
 | |
|   Raised when an attribute reference or assignment fails.  (When an
 | |
|   object does not support attribute references or attribute assignments
 | |
|   at all, \code{TypeError} is raised.)
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{EOFError}
 | |
| % XXXJH xrefs here
 | |
|   Raised when one of the built-in functions (\code{input()} or
 | |
|   \code{raw_input()}) hits an end-of-file condition (\EOF{}) without
 | |
|   reading any data.
 | |
| % XXXJH xrefs here
 | |
|   (N.B.: the \code{read()} and \code{readline()} methods of file
 | |
|   objects return an empty string when they hit \EOF{}.)  No associated value.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{FloatingPointError}
 | |
| Raised when a floating point operation fails.  This exception is
 | |
| always defined, but can only be raised when Python is configured with
 | |
| the \code{--with-fpectl} option, or the \code{WANT_SIGFPE_HANDLER}
 | |
| symbol is defined in the \file{config.h} file.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{IOError}
 | |
| % XXXJH xrefs here
 | |
|   Raised when an I/O operation (such as a \code{print} statement, the
 | |
|   built-in \code{open()} function or a method of a file object) fails
 | |
|   for an I/O-related reason, e.g., ``file not found'' or ``disk full''.
 | |
| 
 | |
| When class exceptions are used, and this exception is instantiated as
 | |
| \code{IOError(errno, strerror)}, the instance has two additional
 | |
| attributes \code{errno} and \code{strerror} set to the error code and
 | |
| the error message, respectively.  These attributes default to
 | |
| \code{None}.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{ImportError}
 | |
| % XXXJH xref to import statement?
 | |
|   Raised when an \code{import} statement fails to find the module
 | |
|   definition or when a \code{from {\rm \ldots} import} fails to find a
 | |
|   name that is to be imported.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{IndexError}
 | |
| % XXXJH xref to sequences
 | |
|   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, \code{TypeError} is raised.)
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{KeyError}
 | |
| % XXXJH xref to mapping objects?
 | |
|   Raised when a mapping (dictionary) key is not found in the set of
 | |
|   existing keys.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{KeyboardInterrupt}
 | |
|   Raised when the user hits the interrupt key (normally
 | |
|   \kbd{Control-C} or
 | |
| \key{DEL}).  During execution, a check for interrupts is made regularly.
 | |
| % XXXJH xrefs here
 | |
|   Interrupts typed when a built-in function \code{input()} or
 | |
|   \code{raw_input()}) is waiting for input also raise this exception.  No
 | |
|   associated value.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{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 \code{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.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{NameError}
 | |
|   Raised when a local or global name is not found.  This applies only
 | |
|   to unqualified names.  The associated value is the name that could
 | |
|   not be found.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{OverflowError}
 | |
| % XXXJH reference to long's and/or int's?
 | |
|   Raised when the result of an arithmetic operation is too large to be
 | |
|   represented.  This cannot occur for long integers (which would rather
 | |
|   raise \code{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.  For plain integers,
 | |
|   all operations that can overflow are checked except left shift, where
 | |
|   typical applications prefer to drop bits than raise an exception.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{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.)
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{SyntaxError}
 | |
| % XXXJH xref to these functions?
 | |
|   Raised when the parser encounters a syntax error.  This may occur in
 | |
|   an \code{import} statement, in an \code{exec} statement, in a call
 | |
|   to the built-in function \code{eval()} or \code{input()}, or
 | |
|   when reading the initial script or standard input (also
 | |
|   interactively).
 | |
| 
 | |
| When class exceptions are used, instances of this class have
 | |
| atttributes \code{filename}, \code{lineno}, \code{offset} and
 | |
| \code{text} for easier access to the details; for string exceptions,
 | |
| the associated value is usually a tuple of the form
 | |
| \code{(message, (filename, lineno, offset, text))}.
 | |
| For class exceptions, \code{str()} returns only the message.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{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 string of the Python
 | |
|   interpreter (\code{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.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{SystemExit}
 | |
| % XXXJH xref to module sys?
 | |
|   This exception is raised by the \code{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 \code{exit()} function); if it is
 | |
|   \code{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.
 | |
| 
 | |
| When class exceptions are used, the instance has an attribute
 | |
| \code{code} which is set to the proposed exit status or error message
 | |
| (defaulting to \code{None}).
 | |
|   
 | |
|   A call to \code{sys.exit()} is translated into an exception so that
 | |
|   clean-up handlers (\code{finally} clauses of \code{try} statements)
 | |
|   can be executed, and so that a debugger can execute a script without
 | |
|   running the risk of losing control.  The \code{os._exit()} function
 | |
|   can be used if it is absolutely positively necessary to exit
 | |
|   immediately (e.g., after a \code{fork()} in the child process).
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{TypeError}
 | |
|   Raised when a built-in operation or function is applied to an object
 | |
|   of inappropriate type.  The associated value is a string giving
 | |
|   details about the type mismatch.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{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
 | |
|   \code{IndexError}.
 | |
| \end{excdesc}
 | |
| 
 | |
| \begin{excdesc}{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.
 | |
| \end{excdesc}
 |