Built-in Exceptions in Python
An exception is a runtime event, that occurs during the execution of a program and disrupts the normal flow of the program’s instructions. An exception is a Python object that represents an error. If the user code contains an error, it will raise an exception. We can use this to test an exception handler or to report an error condition when the interpreter raises the same exception. However, We cannot prevent user code from raising an exception.
The built-in exceptions listed below can be generated by the interpreter or built-in functions.
Exception | Description |
---|---|
ArithmeticError | Raised when an error occurs in numeric calculations |
AssertionError | Raised when an assert statement fails. |
AttributeError | Raised when attribute reference or assignment fails. |
EOFError | Raised when the input() function hits the end-of-file condition without reading any data. The read() and readline() methods return an empty string when they hit EOF. |
FloatingPointError | This Exception is not currently used. Raised when a floating point operation fails. |
GeneratorExit | Raise when a close method of generator or coroutine is called. |
ImportError | Raised when the import statement has troubles trying to load a module. |
IndentationError | Raised when indentation is incorrect. |
IndexError | Raised when the index of a sequence does not exist. |
KeyError | Raised when a mapping key is not found in a dictionary. |
KeyboardInterrupt | Raised when the user hits the interrupt key by pressing key Ctrl+C or Delete. |
ModuleNotFoundError | From python 3.6 onwards, Raised when a module cannot be located. |
MemoryError | Raised when an operation runs out of memory but the situation may still be rescued by deleting some objects. |
NameError | Raised when a variable is not found in local or global scope. |
NotImplementedError | This exception is derived from RuntimeError. In user-defined base classes, abstract methods should raise this exception when they require derived classes to override the method, or while the class is being developed to indicate that the real implementation still needs to be added. |
OSError | Raised when system operation causes system-related error including I/O failures such as “file not found” or “disk full”. |
OverflowError | Raised when the result of an arithmetic operation is too large to be represented. |
RecursionError | From Python 3.5 onwards, It is raised when the interpreter detects that the maximum recursion depth is exceeded. |
ReferenceError | Raised when a weak reference proxy is used to access a garbage collected referent. |
RuntimeError | Raised when an error does not fall under any of the other categories. |
StopIteration | Raised by built-in functionnext() function to indicate that there is no further item to be returned by iterator. |
StopAsyncIteration | From python 3.5 onwards, Raised by anext() method of an asynchronous iterator object to stop the iteration. |
SyntaxError | Raised by parser when syntax error is encountered. |
TabError | Raised when indentation consists of inconsistent use of tabs and spaces. |
SystemError | Raised when interpreter detects an internal error, but the situation does not look so serious. |
SystemExit | Raised by sys.exit() function. This allows the exception to properly propagate up and cause the interpreter to exit. |
TypeError | Raised when a function or operation is applied to an object of inappropriate type. |
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. |
UnicodeError | Raised when a Unicode-related encoding or decoding error occurs. |
UnicodeEncodeError | Raised when a Unicode-related error occurs during encoding. |
UnicodeDecodeError | Raised when a Unicode-related error occurs during decoding. |
UnicodeTranslateError | Raised when a Unicode-related error occurs during translating. |
ValueError | Raised when an 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 IndexError |
ZeroDivisionError | Raised when the second argument of a division or modulo operation is zero. |
BlockingIOError | Raised when an operation would block on an object (e.g. socket) set for non-blocking operation. |
ChildProcessError | Raised when an operation on a child process failed. |
ConnectionError | Raised when there is a connection-related issues. |
FileExistsError | Raised when trying to create a file or directory which already exists |
FileNotFoundError | Raised when a file or directory is requested but doesn’t exist. |
InterruptedError | Raised when a system call is interrupted by an incoming signal. |
IsADirectoryError | Raised when a file operation such as os.remove() is requested on a directory. |
NotADirectoryError | Raised when a directory operation such as os.listdir() is requested on something which is not a directory. |
PermissionError | Raised when trying to run an operation without the adequate access rights – for example filesystem permissions. |
ProcessLookupError | Raised when a given process doesn’t exist. |
TimeoutError | Raised when a system function timed out at the system level. |
References
Happy Learning 🙂