Python Catching Exceptions Tutorial – Complete Guide

Exception handling in Python is a crucial concept to grasp for ensuring smooth execution of your code. Its significance emerges as we begin to explore increasingly complex projects, where the margin for error increases. We are going to delve deep into this subject, demystifying its core aspects while simultaneously striving to make it engaging and valuable for you.

What Is Catching Exceptions in Python?

“Exception” is a term commonly used to describe an event that arises during the execution of a program and disrupts the normal flow of instructions. As you may infer from its name, catching exceptions in Python is the process of handling these unexpected events that may lead to a program crash if ignored.

Why Should I Learn About Catching Exceptions?

Why is it important to learn about catching exceptions?

  • First, it contributes to writing error-free code, ensuring the steady operation of your application.
  • Secondly, it allows for a better user experience. By catching and handling exceptions, we prevent sudden crashes and can provide useful error messages to our users.
  • Lastly, catching exceptions is a good programming practice. It enhances code readability, making it easier for other developers to understand the flow of the program.

Join us in this journey as we explore how you can leverage this powerful concept in Python to elevate your programming capabilities.

CTA Small Image




Basics of Catching Exceptions in Python

In Python, exceptions are caught by enclosing the potential error-producing part in a try block and specifying the response in an except block. Let’s go over some examples:

    print(10/0)  # This will produce an error
    print("An error occurred")  # This is the response to the error

In this scenario, an exception will be raised when Python attempts to execute the division by zero, and the error message “An error occurred” will be printed in response.

You can specify the type of Exception that you want to catch:

except ZeroDivisionError:  # Specific exception
    print("You cannot divide by zero!")

Multiple Exceptions Handling

In Python, you can catch multiple specific exceptions by using multiple except blocks. Let’s see it in action:

    a = 10 / 0
    list_ = []
except ZeroDivisionError:
    print("You cannot divide by zero!")
except IndexError:
    print("Index out of range!")

In the above example, if an IndexError or a ZeroDivisionError occurs, the corresponding error message will be printed.

The ‘else’ Block

An else clause can be included to specify a block of code to be executed if no errors were raised:

    print("Hello, World")
    print("An error occurred")
    print("Everything worked fine")

In this case, since there’s no error, “Hello, World” will be printed followed by “Everything worked fine”.

The ‘finally’ Block

In Python, the finally clause is a place to include any code that must be executed, irrespective of whether an exception has been raised or not:

except ZeroDivisionError:
    print("You cannot divide by zero!")
    print("This will be printed no matter what.")

Regardless of whether an error occurs, the message “This will be printed no matter what.” will always be displayed.

Using ‘except’ Block without an Exception

In Python, it’s permitted to use an ‘except’ block without specifying any particular exception. However, it’s generally discouraged because it inhibits the diagnosis of errors. Here is an example:

    print("An unidentified error occurred")

In this case, the ‘except’ block will catch any exception, but the error message does not indicate the causal problem, which could be anything.

Raising Exceptions

Aside from handling exceptions, Python also allows you to manually trigger, or ‘raise’, exceptions in your code:

    raise Exception("This is a custom error message")
except Exception as e:

The ‘raise’ keyword is used to trigger an exception, and the message in parentheses will be printed out if the exception is caught.

Creating Custom Exceptions

Python empowers you to create your own custom exceptions for better error handling:

class CustomError(Exception):

    raise CustomError("This is a custom error exception")
except CustomError as e:

A custom exception, CustomError was created and raised in the ‘try’ block. If the exception is caught, the custom error message will be outputted.

Using ‘assert’ to Catch Exceptions

The ‘assert’ keyword is another powerful tool provided by Python to handle exceptions. This keyword can be used to check whether a certain condition is met and triggers an exception if not:

    x = 1
    assert x == 0, "x is not zero"
except AssertionError as e:

In the above example, since ‘x’ is not zero, an AssertionError is raised, and the corresponding error message is printed.

By extensively using these concepts, you can write more structured and robust Python code, improving both the reliability and user experience of your applications. At Zenva, we encourage good coding practices like these, as they are crucial for creating high-quality software in real-world scenarios.

Where to Go Next? How to Keep Learning?

You’ve begun to scratch the surface of the vast world of exception handling in Python. But where do you go next? How do you continue to grow these newfound skills? At Zenva, we have the right resources and courses to help you keep progressing on your path to mastering Python.

We encourage you to check out our Python Mini-Degree. This comprehensive set of courses immerses you into Python programming, covering topics such as coding basics, algorithms, and object-oriented programming. But it doesn’t stop there – we also delve into game development and app development using Python!

Python is a versatile programming language that shines due to its simplicity and impressive library range. It finds applications in numerous industries, including data science, machine learning, space exploration, and robotics. Therefore, learning Python opens up a world of possibilities.

Our courses cater to all levels, from beginners to veteran coders. We believe in learning by doing, so our courses guide you through creating your own games, crafting unique algorithms, and even developing real-world apps. Upon course completion, you will not only have acquired valuable Python skills but also a portfolio of Python projects, paving the way for a successful career in programming.

For a broader scope, you can explore our entire collection of Python courses. Wherever you are in your coding journey, we have the right program for you.

At Zenva, we champion learning that equips you with practical skills and gives you the confidence to navigate the ever-evolving tech landscape. Whether you’re a beginner looking to delve into the world of coding or a professional aiming to elevate your skill set, we’ve got you covered.

Embark on your journey with us, experience growth at your own pace, and transform yourself from a beginner to a professional. Keep learning, keep coding, and let’s continue this enriching journey together!


Catching exceptions in Python is one of the many expedients online learning has to offer to equip you for the real-world programming journeys. Not only does this knowledge help maintain the smooth and trouble-free operation of your code, but it also aids in excellent user interaction, debugging and overall code quality. At Zenva, we are dedicated to nurturing these crucial skills that provide the foundation for all your future endeavours.

Progress and advance in your Python learning journey with our comprehensive Python Mini-Degree program. We’re here to help you every step of the way, transforming the way you approach learning and, ultimately, the way you interact with the technology around you. So why wait? Come and join us, step into a world of endless possibilities, and let’s explore a future of code, together.


Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Unreal, Python, Godot and more.