Skip to content

Error Types


The most common reason of an error in a Python program is when a certain statement is not in accordance with the prescribed usage. Such an error is called a syntax error. The Python interpreter immediately reports it, usually along with the reason.

>>> print "hello"
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("hello")?

>>> print "hello" SyntaxError: Missing parentheses in call to 'print'. Did you mean print("hello")? In Python 3.x, print is a built-in function and requires parentheses. The statement above violates this usage and hence syntax error is displayed.

Many times though, a program results in an error after it is run even if it doesn’t have any syntax error. Such an error is a runtime error, called an exception. A number of built-in exceptions are defined in the Python library. Let’s see some common error types.

The following table lists important built-in exceptions in Python.

The IndexError is thrown when trying to access an item at an invalid index. IndexError

>>> L1=[1,2,3]
>>> L1[3]
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
L1[3]
IndexError: list index out of range

`>>> L1=[1,2,3]

L1[3] Traceback (most recent call last): File “<pyshell#18>”, line 1, in

L1[3] IndexError: list index out of range`

The ModuleNotFoundError is thrown when a module could not be found. ModuleNotFoundError

>>> import notamodule
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
import notamodule
ModuleNotFoundError: No module named 'notamodule'

`>>> import notamodule Traceback (most recent call last): File “<pyshell#10>”, line 1, in

import notamodule ModuleNotFoundError: No module named ‘notamodule’`

The KeyError is thrown when a key is not found. KeyError

>>> D1={'1':"aa", '2':"bb", '3':"cc"}
>>> D1['4']
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
D1['4']
KeyError: '4'

`>>> D1={‘1’:“aa”, ‘2’:“bb”, ‘3’:“cc”}

D1[‘4’] Traceback (most recent call last): File “<pyshell#15>”, line 1, in

D1[‘4’] KeyError: ‘4’`

The ImportError is thrown when a specified function can not be found. ImportError

>>> from math import cube
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
from math import cube
ImportError: cannot import name 'cube'

`>>> from math import cube Traceback (most recent call last): File “<pyshell#16>”, line 1, in

from math import cube ImportError: cannot import name ‘cube’`

The StopIteration is thrown when the next() function goes beyond the iterator items. StopIteration``next()

>>> it=iter([1,2,3])
>>> next(it)
1
>>> next(it)
2
>>> next(it)
3
>>> next(it)
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
next(it)
StopIteration

`>>> it=iter([1,2,3])

next(it) 1 next(it) 2 next(it) 3 next(it) Traceback (most recent call last): File “<pyshell#23>”, line 1, in

next(it) StopIteration`

The TypeError is thrown when an operation or function is applied to an object of an inappropriate type. TypeError

>>> '2'+2
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
'2'+2
TypeError: must be str, not int

`>>> ‘2’+2 Traceback (most recent call last): File “<pyshell#23>”, line 1, in

‘2’+2 TypeError: must be str, not int`

The ValueError is thrown when a function’s argument is of an inappropriate type. ValueError

>>> int('xyz')
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
int('xyz')
ValueError: invalid literal for int() with base 10: 'xyz'

`>>> int(‘xyz’) Traceback (most recent call last): File “<pyshell#14>”, line 1, in

int(‘xyz’) ValueError: invalid literal for int() with base 10: ‘xyz’`

The NameError is thrown when an object could not be found. NameError

>>> age
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
age
NameError: name 'age' is not defined

`>>> age Traceback (most recent call last): File “<pyshell#6>”, line 1, in

age NameError: name ‘age’ is not defined`

The ZeroDivisionError is thrown when the second operator in the division is zero. ZeroDivisionError

>>> x=100/0
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
x=100/0
ZeroDivisionError: division by zero

`>>> x=100/0 Traceback (most recent call last): File “<pyshell#8>”, line 1, in

x=100/0 ZeroDivisionError: division by zero`

The KeyboardInterrupt is thrown when the user hits the interrupt key (normally Control-C) during the execution of the program. KeyboardInterrupt

>>> name=input('enter your name')
enter your name^c
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
name=input('enter your name')
KeyboardInterrupt

`>>> name=input(‘enter your name’) enter your name^c Traceback (most recent call last): File “<pyshell#9>”, line 1, in

name=input(‘enter your name’) KeyboardInterrupt` Learn how to handle exceptions in Python in the next chapter.