| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \section{Built-in Exceptions} | 
					
						
							| 
									
										
										
										
											1998-07-23 19:33:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-04-22 21:23:22 +00:00
										 |  |  | \declaremodule{standard}{exceptions} | 
					
						
							| 
									
										
										
										
											1998-07-23 19:33:08 +00:00
										 |  |  | \modulesynopsis{Standard exceptions classes.} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-09 03:28:00 +00:00
										 |  |  | Exceptions can be class objects or string objects.  Though most | 
					
						
							|  |  |  | exceptions have been string objects in past versions of Python, in | 
					
						
							|  |  |  | Python 1.5 and newer versions, all standard exceptions have been | 
					
						
							|  |  |  | converted to class objects, and users are encouraged to do the same. | 
					
						
							|  |  |  | The exceptions are defined in the module \module{exceptions}.  This | 
					
						
							|  |  |  | module never needs to be imported explicitly: the exceptions are | 
					
						
							| 
									
										
										
										
											2001-09-21 21:12:30 +00:00
										 |  |  | provided in the built-in namespace as well as the \module{exceptions} | 
					
						
							|  |  |  | module. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | For class exceptions, in a \keyword{try}\stindex{try} statement with | 
					
						
							|  |  |  | an \keyword{except}\stindex{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. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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). | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | The associated value is the second argument to the | 
					
						
							|  |  |  | \keyword{raise}\stindex{raise} statement.  For string exceptions, the | 
					
						
							|  |  |  | associated value itself will be stored in the variable named as the | 
					
						
							|  |  |  | second argument of the \keyword{except} clause (if any).  For class | 
					
						
							|  |  |  | exceptions, that variable receives the exception instance.  If the | 
					
						
							|  |  |  | exception class is derived from the standard root class | 
					
						
							|  |  |  | \exception{Exception}, the associated value is present as the | 
					
						
							|  |  |  | exception instance's \member{args} attribute, and possibly on other | 
					
						
							|  |  |  | attributes as well. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | User code can raise built-in exceptions.  This can be used to test an | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | exception handler or to report an error condition ``just like'' the | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | situation in which the interpreter raises the same exception; but | 
					
						
							|  |  |  | beware that there is nothing to prevent user code from raising an | 
					
						
							|  |  |  | inappropriate error. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-09-21 21:12:30 +00:00
										 |  |  | The built-in exception classes can be sub-classed to define new | 
					
						
							|  |  |  | exceptions; programmers are encouraged to at least derive new | 
					
						
							|  |  |  | exceptions from the \exception{Exception} base class.  More | 
					
						
							|  |  |  | information on defining exceptions is available in the | 
					
						
							|  |  |  | \citetitle[../tut/tut.html]{Python Tutorial} under the heading | 
					
						
							|  |  |  | ``User-defined Exceptions.'' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-13 06:58:54 +00:00
										 |  |  | \setindexsubitem{(built-in exception base class)} | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The following exceptions are only used as base classes for other | 
					
						
							| 
									
										
										
										
											2000-04-06 15:03:01 +00:00
										 |  |  | exceptions. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \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 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  | from this class, but this is not (yet) enforced.  The \function{str()} | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | function, when applied to an instance of this class (or most derived | 
					
						
							|  |  |  | classes) returns the string value of the argument or arguments, or an | 
					
						
							| 
									
										
										
										
											1997-10-07 14:41:04 +00:00
										 |  |  | empty string if no arguments were given to the constructor.  When used | 
					
						
							|  |  |  | as a sequence, this accesses the arguments given to the constructor | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  | (handy for backward compatibility with old code).  The arguments are | 
					
						
							| 
									
										
										
										
											1998-07-23 20:31:53 +00:00
										 |  |  | also available on the instance's \member{args} attribute, as a tuple. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{StandardError} | 
					
						
							| 
									
										
										
										
											1999-02-24 00:27:14 +00:00
										 |  |  | The base class for all built-in exceptions except | 
					
						
							| 
									
										
										
										
											2001-07-23 19:19:39 +00:00
										 |  |  | \exception{StopIteration} and \exception{SystemExit}. | 
					
						
							|  |  |  | \exception{StandardError} itself is derived from the root class | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  | \exception{Exception}. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{ArithmeticError} | 
					
						
							|  |  |  | The base class for those built-in exceptions that are raised for | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  | various arithmetic errors: \exception{OverflowError}, | 
					
						
							|  |  |  | \exception{ZeroDivisionError}, \exception{FloatingPointError}. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{LookupError} | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  | The base class for the exceptions that are raised when a key or | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  | index used on a mapping or sequence is invalid: \exception{IndexError}, | 
					
						
							| 
									
										
										
										
											2000-10-25 21:05:29 +00:00
										 |  |  | \exception{KeyError}.  This can be raised directly by | 
					
						
							|  |  |  | \function{sys.setdefaultencoding()}. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  | \begin{excdesc}{EnvironmentError} | 
					
						
							|  |  |  | The base class for exceptions that | 
					
						
							|  |  |  | can occur outside the Python system: \exception{IOError}, | 
					
						
							|  |  |  | \exception{OSError}.  When exceptions of this type are created with a | 
					
						
							|  |  |  | 2-tuple, the first item is available on the instance's \member{errno} | 
					
						
							|  |  |  | attribute (it is assumed to be an error number), and the second item | 
					
						
							|  |  |  | is available on the \member{strerror} attribute (it is usually the | 
					
						
							|  |  |  | associated error message).  The tuple itself is also available on the | 
					
						
							|  |  |  | \member{args} attribute. | 
					
						
							| 
									
										
										
										
											1999-02-02 18:00:40 +00:00
										 |  |  | \versionadded{1.5.2} | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | When an \exception{EnvironmentError} exception is instantiated with a | 
					
						
							|  |  |  | 3-tuple, the first two items are available as above, while the third | 
					
						
							|  |  |  | item is available on the \member{filename} attribute.  However, for | 
					
						
							|  |  |  | backwards compatibility, the \member{args} attribute contains only a | 
					
						
							|  |  |  | 2-tuple of the first two constructor arguments. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The \member{filename} attribute is \code{None} when this exception is | 
					
						
							|  |  |  | created with other than 3 arguments.  The \member{errno} and | 
					
						
							|  |  |  | \member{strerror} attributes are also \code{None} when the instance was | 
					
						
							|  |  |  | created with other than 2 or 3 arguments.  In this last case, | 
					
						
							|  |  |  | \member{args} contains the verbatim constructor arguments as a tuple. | 
					
						
							|  |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-09-07 16:33:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-13 06:58:54 +00:00
										 |  |  | \setindexsubitem{(built-in exception)} | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The following exceptions are the exceptions that are actually raised. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{AssertionError} | 
					
						
							|  |  |  | \stindex{assert} | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | Raised when an \keyword{assert} statement fails. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | \end{excdesc} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{AttributeError} | 
					
						
							|  |  |  | % xref to attribute reference?
 | 
					
						
							|  |  |  |   Raised when an attribute reference or assignment fails.  (When an | 
					
						
							| 
									
										
										
										
											1995-03-17 16:07:09 +00:00
										 |  |  |   object does not support attribute references or attribute assignments | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   at all, \exception{TypeError} is raised.) | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{EOFError} | 
					
						
							|  |  |  | % XXXJH xrefs here
 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   Raised when one of the built-in functions (\function{input()} or | 
					
						
							|  |  |  |   \function{raw_input()}) hits an end-of-file condition (\EOF{}) without | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   reading any data. | 
					
						
							|  |  |  | % XXXJH xrefs here
 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   (N.B.: the \method{read()} and \method{readline()} methods of file | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  |   objects return an empty string when they hit \EOF{}.) | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | \begin{excdesc}{FloatingPointError} | 
					
						
							| 
									
										
										
										
											1998-07-27 21:11:42 +00:00
										 |  |  |   Raised when a floating point operation fails.  This exception is | 
					
						
							|  |  |  |   always defined, but can only be raised when Python is configured | 
					
						
							| 
									
										
										
										
											2000-04-11 19:46:40 +00:00
										 |  |  |   with the \longprogramopt{with-fpectl} option, or the | 
					
						
							| 
									
										
										
										
											1998-07-27 21:11:42 +00:00
										 |  |  |   \constant{WANT_SIGFPE_HANDLER} symbol is defined in the | 
					
						
							| 
									
										
										
										
											2001-07-26 13:41:06 +00:00
										 |  |  |   \file{pyconfig.h} file. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \begin{excdesc}{IOError} | 
					
						
							|  |  |  | % XXXJH xrefs here
 | 
					
						
							| 
									
										
										
										
											1998-07-27 21:11:42 +00:00
										 |  |  |   Raised when an I/O operation (such as a \keyword{print} statement, | 
					
						
							|  |  |  |   the built-in \function{open()} function or a method of a file | 
					
						
							|  |  |  |   object) fails for an I/O-related reason, e.g., ``file not found'' or | 
					
						
							|  |  |  |   ``disk full''. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-01-05 21:42:18 +00:00
										 |  |  |   This class is derived from \exception{EnvironmentError}.  See the | 
					
						
							| 
									
										
										
										
											1998-07-27 21:11:42 +00:00
										 |  |  |   discussion above for more information on exception instance | 
					
						
							|  |  |  |   attributes. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{ImportError} | 
					
						
							|  |  |  | % XXXJH xref to import statement?
 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   Raised when an \keyword{import} statement fails to find the module | 
					
						
							| 
									
										
										
										
											1998-11-25 20:55:03 +00:00
										 |  |  |   definition or when a \code{from \textrm{\ldots} import} fails to find a | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   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 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   plain integer, \exception{TypeError} is raised.) | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \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 | 
					
						
							| 
									
										
										
										
											2001-07-12 02:09:51 +00:00
										 |  |  |   \kbd{Control-C} or \kbd{Delete}).  During execution, a check for | 
					
						
							| 
									
										
										
										
											1998-04-28 13:38:54 +00:00
										 |  |  |   interrupts is made regularly. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | % XXXJH xrefs here
 | 
					
						
							| 
									
										
										
										
											1998-04-28 13:38:54 +00:00
										 |  |  |   Interrupts typed when a built-in function \function{input()} or | 
					
						
							|  |  |  |   \function{raw_input()}) is waiting for input also raise this | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  |   exception. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \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 | 
					
						
							| 
									
										
										
										
											2000-04-06 15:03:01 +00:00
										 |  |  |   (C's \cfunction{malloc()} function), the interpreter may not | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   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. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \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} | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-12-01 19:48:04 +00:00
										 |  |  | \begin{excdesc}{NotImplementedError} | 
					
						
							|  |  |  |   This exception is derived from \exception{RuntimeError}.  In user | 
					
						
							|  |  |  |   defined base classes, abstract methods should raise this exception | 
					
						
							|  |  |  |   when they require derived classes to override the method. | 
					
						
							| 
									
										
										
										
											1999-02-02 18:00:40 +00:00
										 |  |  |   \versionadded{1.5.2} | 
					
						
							| 
									
										
										
										
											1998-12-01 19:48:04 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  | \begin{excdesc}{OSError} | 
					
						
							|  |  |  |   %xref for os module
 | 
					
						
							| 
									
										
										
										
											1998-07-23 20:31:53 +00:00
										 |  |  |   This class is derived from \exception{EnvironmentError} and is used | 
					
						
							| 
									
										
										
										
											1999-04-22 21:23:22 +00:00
										 |  |  |   primarily as the \refmodule{os} module's \code{os.error} exception. | 
					
						
							| 
									
										
										
										
											1999-02-01 16:17:40 +00:00
										 |  |  |   See \exception{EnvironmentError} above for a description of the | 
					
						
							|  |  |  |   possible associated values. | 
					
						
							| 
									
										
										
										
											1999-02-02 18:00:40 +00:00
										 |  |  |   \versionadded{1.5.2} | 
					
						
							| 
									
										
										
										
											1998-07-23 19:57:35 +00:00
										 |  |  | \end{excdesc} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \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 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   raise \exception{MemoryError} than give up).  Because of the lack of | 
					
						
							| 
									
										
										
										
											2000-04-06 15:03:01 +00:00
										 |  |  |   standardization of floating point exception handling in C, most | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   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 | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  |   precisely went wrong.  (This exception is mostly a relic from a | 
					
						
							|  |  |  |   previous version of the interpreter; it is not used very much any | 
					
						
							|  |  |  |   more.) | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-05-03 04:30:45 +00:00
										 |  |  | \begin{excdesc}{StopIteration} | 
					
						
							|  |  |  |   Raised by an iterator's \method{next()} method to signal that there | 
					
						
							|  |  |  |   are no further values. | 
					
						
							|  |  |  |   This is derived from \exception{Exception} rather than | 
					
						
							|  |  |  |   \exception{StandardError}, since this is not considered an error in | 
					
						
							|  |  |  |   its normal application. | 
					
						
							| 
									
										
										
										
											2001-05-03 04:39:10 +00:00
										 |  |  |   \versionadded{2.2} | 
					
						
							| 
									
										
										
										
											2001-05-03 04:30:45 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \begin{excdesc}{SyntaxError} | 
					
						
							|  |  |  | % XXXJH xref to these functions?
 | 
					
						
							|  |  |  |   Raised when the parser encounters a syntax error.  This may occur in | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   an \keyword{import} statement, in an \keyword{exec} statement, in a call | 
					
						
							|  |  |  |   to the built-in function \function{eval()} or \function{input()}, or | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   when reading the initial script or standard input (also | 
					
						
							|  |  |  |   interactively). | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-09-21 21:12:30 +00:00
										 |  |  |   Instances of this class have atttributes \member{filename}, | 
					
						
							|  |  |  |   \member{lineno}, \member{offset} and \member{text} for easier access | 
					
						
							|  |  |  |   to the details.  \function{str()} of the exception instance returns | 
					
						
							|  |  |  |   only the message. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \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 | 
					
						
							| 
									
										
										
										
											2001-09-21 21:12:30 +00:00
										 |  |  |   interpreter.  Be sure to report the version of the Python | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   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?
 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   This exception is raised by the \function{sys.exit()} function.  When it | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   is not handled, the Python interpreter exits; no stack traceback is | 
					
						
							|  |  |  |   printed.  If the associated value is a plain integer, it specifies the | 
					
						
							| 
									
										
										
										
											2000-04-06 15:03:01 +00:00
										 |  |  |   system exit status (passed to C's \cfunction{exit()} function); if it is | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   \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. | 
					
						
							| 
									
										
										
										
											1997-10-05 18:51:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-06 15:03:01 +00:00
										 |  |  |   Instances have an attribute \member{code} which is set to the | 
					
						
							|  |  |  |   proposed exit status or error message (defaulting to \code{None}). | 
					
						
							|  |  |  |   Also, this exception derives directly from \exception{Exception} and | 
					
						
							|  |  |  |   not \exception{StandardError}, since it is not technically an error. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   A call to \function{sys.exit()} is translated into an exception so that | 
					
						
							|  |  |  |   clean-up handlers (\keyword{finally} clauses of \keyword{try} statements) | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   can be executed, and so that a debugger can execute a script without | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   running the risk of losing control.  The \function{os._exit()} function | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  |   can be used if it is absolutely positively necessary to exit | 
					
						
							| 
									
										
										
										
											2001-07-23 19:19:39 +00:00
										 |  |  |   immediately (for example, in the child process after a call to | 
					
						
							|  |  |  |   \function{fork()}). | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \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} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-06 15:03:01 +00:00
										 |  |  | \begin{excdesc}{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 \exception{NameError}. | 
					
						
							| 
									
										
										
										
											2000-06-30 16:06:19 +00:00
										 |  |  | \versionadded{2.0} | 
					
						
							| 
									
										
										
										
											2000-04-06 15:03:01 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-06 14:48:35 +00:00
										 |  |  | \begin{excdesc}{UnicodeError} | 
					
						
							|  |  |  |   Raised when a Unicode-related encoding or decoding error occurs.  It | 
					
						
							|  |  |  |   is a subclass of \exception{ValueError}. | 
					
						
							| 
									
										
										
										
											2000-06-30 16:06:19 +00:00
										 |  |  | \versionadded{2.0} | 
					
						
							| 
									
										
										
										
											2000-04-06 14:48:35 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \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 | 
					
						
							| 
									
										
										
										
											1998-07-23 19:47:41 +00:00
										 |  |  |   \exception{IndexError}. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-17 17:42:00 +00:00
										 |  |  | \begin{excdesc}{WindowsError} | 
					
						
							|  |  |  |   Raised when a Windows-specific error occurs or when the error number | 
					
						
							|  |  |  |   does not correspond to an \cdata{errno} value.  The | 
					
						
							|  |  |  |   \member{errno} and \member{strerror} values are created from the | 
					
						
							|  |  |  |   return values of the \cfunction{GetLastError()} and | 
					
						
							|  |  |  |   \cfunction{FormatMessage()} functions from the Windows Platform API. | 
					
						
							|  |  |  |   This is a subclass of \exception{OSError}. | 
					
						
							| 
									
										
										
										
											2000-06-30 16:06:19 +00:00
										 |  |  | \versionadded{2.0} | 
					
						
							| 
									
										
										
										
											2000-04-17 17:42:00 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \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} | 
					
						
							| 
									
										
										
										
											2000-12-19 04:27:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-09-21 21:12:30 +00:00
										 |  |  | \setindexsubitem{(built-in warning)} | 
					
						
							| 
									
										
										
										
											2000-12-19 04:27:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The following exceptions are used as warning categories; see the | 
					
						
							|  |  |  | \module{warnings} module for more information. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{Warning} | 
					
						
							|  |  |  | Base class for warning categories. | 
					
						
							|  |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{UserWarning} | 
					
						
							|  |  |  | Base class for warnings generated by user code. | 
					
						
							|  |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{DeprecationWarning} | 
					
						
							|  |  |  | Base class for warnings about deprecated features. | 
					
						
							|  |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{SyntaxWarning} | 
					
						
							|  |  |  | Base class for warnings about dubious syntax | 
					
						
							|  |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{RuntimeWarning} | 
					
						
							|  |  |  | Base class for warnings about dubious runtime behavior. | 
					
						
							|  |  |  | \end{excdesc} |