Python Error and In-built Exception in Python

A small typing mistake can lead to an error in any programming language because we must follow the syntax rules while coding in any programming language.

Same is the case with python, in this tutorial we will learn about syntax errors and exceptions in python along with listing down some of the commonly occuring Exceptions in python.


Python: Syntax Error

This is the most common and basic error situation where you break any syntax rule like if you are working with Python 3.x version and you write the following code for printing any statement,

print "I love Python!"

SyntaxError: Missing parentheses in call to 'print'.

Because, Python 3 onwards the syntax for using the print statement has changed. Similarly if you forget to add colon(:) at the end of the if condition, you will get a SyntaxError:

if 7 > 5
    print("Yo Yo!")

SyntaxError: invalid syntax

Hence syntax errors are the most basic type of errors that you will encounter while coding in python and these can easily be fixed by seeing the error message and correcting the code as per python syntax.


Python: What is an Exception?

Contrary to syntax error, exception is a type of error which is caused as a result of malfunctioning of the code during execution.

Your code might not have any syntax error, still it can lead to exceptions when it is executed.

Let's take the most basic example of dividing a number by zero:

a = 10
b = 0
print("Result of Division: " + str(a/b))

Traceback (most recent call last): File "main.py", line 3, in <module> print("Result of Division: " + str(a/b)) ZeroDivisionError: division by zero

As we can see in the output, we got ZeroDivisionError while the syntax of our python code was absolutely correct, because in this case the error or we should say the exception was generated while code execution.

Python returns a very detailed exception message for us to understand the origin point and reason for the exception so that it becomes easier for us to fix our code.


Decoding the Exception Message in Python

What does exception message means in python

The term Traceback in the exception message means that python has traced back the code to the point from where the exception occured and will be showing the related messages after this line.

The second line in the exception message, as you can see above, tells us the name of the python file and the exact line number for the code due to which exception was generated.

If that is still not helpful for someone, in the third line of exception message the complete code statement which lead to the exception is printed.

And then in the last line, python tells us which exception/error occured, which in our example above is ZeroDivisionError.


In-built Python Exception classes

Let's learn about a few exception classes along with common reasons for their occurence for our future reference.

NOTE: We are calling them exception class as all these are defined in python as classes.

Exception classDescription
AttributeErrorThis exception occurs when the attribute that we are tryinh to access(whether for assigning a value or getting a value) doesn't exists. For example: Trying to access a class member variable which is not defined in class.
ImportErrorThis exception occurs when the imported module is not found.
IndentationErrorThis exception occurs when there is some issue with the code indentation.
TypeErrorWhen an operation is executed on a variable of incorrect type.
ValueErrorWhen for a function, argument value is incorrect.
ZeroDivisionErrorAs discussed above, when we try to divide a number with zero.
TabErrorWhen the indentation is not consistenet throughout the code in terms of tabs and spaces used for indentation.
RuntimeErrorWhen an error is not of any specific defined exception type, python calls it RuntimeError.
NameErrorWhen a variable name we are trying to use is not defined.

These were some of the built-in excpetion classes which are most commonly encountered while coding in python. For all the exception types in python check the official documentation of python.