Python Built-In Exceptions Tutorial – Complete Guide

Welcome! In today’s tutorial, we are going to embark on a journey through the intricacies of Python built-in exceptions. We’ll unravel their mysteries, demonstrating how they can excellent tools to handle errors in your programs and games, making your code more robust and reliable.

Unveiling Python Built-in Exceptions

Python, like most programming languages, has built-in mechanisms to manage unexpected events that might occur during the runtime of your programs – things like division by zero or file not found are common occurrences. These mechanisms are called exceptions.

Understanding exceptions in Python is paramount to becoming a solid programmer. They will allow you to anticipate possible issues that your program might run into, and gracefully recover from these. By knowing how to manage exceptions, your code will be more trustworthy and easier to debug.

For those of you who are interested in game development, imagine a scenario where your game crashes unexpectedly. As the developer, your first priority is identifying what went wrong. With a proper understanding of Python’s built-in exceptions, you can efficiently pinpoint the error and fix it. Plus, you can design your game to carry on and recover in most situations, ensuring the best possible experience for your players.

Without getting into code quite yet, think of Python built-in exceptions as the game’s referee. The referee’s job is to watch the game and halt it whenever a foul is committed. By learning to handle Python exceptions, you essentially play the role of both developer and referee, creating an unbroken, efficient playground for your programs.

CTA Small Image

Handling Exceptions in Python

Now that you know what built-in exceptions are and their importance, let’s see them in action. In Python, we primarily deal with exceptions using the try-except block.

Consider the following simple Python code snippet:

numerator = 5
denominator = 0
print(numerator / denominator)

This code will throw a ZeroDivisionError, a built-in exception in Python because you can’t divide by zero. To handle this, we use try-except:

numerator = 5
denominator = 0
    print(numerator / denominator)
except ZeroDivisionError:
    print("Sorry, you can't divide by zero!")

With this code, instead of our program crashing, it continues and displays our error message.

Python’s Built-in Exceptions

Python provides a wide range of built-in exceptions that help cater to different situations. Here are some of the most common ones:

  • ZeroDivisionError: Raised when the second number in a division operation is zero.
  • TypeError: Raised when an operation is performed on an object of an inappropriate type.
  • FileNotFoundError: Raised when a file or directory is requested but doesn’t exist.

Diving Deeper into Python Exceptions

There are more comprehensive ways of handling exceptions in Python. For instance, you can catch multiple exceptions in a single except block as shown:

    # Some operations here
except (TypeError, ZeroDivisionError):
    print("Caught an exception")

Or you can separate the handling for each exception:

    # Some operations here
except TypeError:
    print("Caught a TypeError")
except ZeroDivisionError:
    print("Caught a ZeroDivisionError")

In the next section, we’ll continue exploring Python’s built-in exceptions with more practical examples.

Deepening Your Understanding of Python Exceptions

Let’s now look at more complex examples and delve deeper into Python exceptions.

Using the else Clause

Sometimes, you may want to execute some code only when the try block didn’t raise an exception. This is where the else clause comes in handy. Check out the example below:

    result = 5 / 2
except ZeroDivisionError:
    print("You can't divide by zero!")
    print("The division was successful.")

In this code, the else clause only executes if no exceptions are raised in the try block.

Using the finally Clause

The finally clause is a powerful tool that lets you execute code whether an exception was raised or not. This can be great for cleanup tasks:

    result = 5 / 2
except ZeroDivisionError:
    print("You can't divide by zero!")
    print("This prints no matter what.")

Regardless of whether the exception was caught, the finally clause is always executed.

Raising Custom Exceptions

Python allows you to deliberately raise exceptions via the raise statement. You can use built-in exceptions, or create your own:

    age = -1
    if age < 0:
        raise ValueError("Age cannot be negative.")
except ValueError as e:

In this example, we raise a ValueError exception when the age is less than zero.

Creating Custom Exception Classes

You can customize exception handling further by creating your own exception classes. This can allow you to tailor error messages to suit your program’s needs:

class NegativeAgeError(Exception):

    age = -1
    if age < 0:
        raise NegativeAgeError("Age cannot be negative.")
except NegativeAgeError as e:

Learning to work with exceptions can transform your Python programming, taking it from good to great. Mastering Python’s built-in exceptions now will give you an indispensable tool when you face real-life coding challenges in the future.

Where to Go Next?

By now, we hope you’ve gained a robust understanding of the importance of Python’s built-in exceptions and how to handle them. But remember, this is just the tip of the Python iceberg!

At Zenva, we strive to provide the necessary skills and knowledge to take you from beginner to pro. With our Python Mini-Degree, you can dive deeper into the world of Python. This comprehensive collection of Python courses spans from coding basics and object-oriented programming to game and app development with popular libraries like Pygame and Tkinter.

Our Python Mini-Degree doesn’t just cover the theoretical side of Python. Each course is packed with step-by-step practical projects and quizzes to reinforce your learning and remember: Python is ranked as one of the most in-demand programming languages, with high job potential. With the skills you acquire from this degree, you could publish games, secure a job, or even start your own business!

The curriculum is constantly updated to keep up with industry advancements, and you’ll have the support of expert mentors as you learn. The best part? You can learn at your own pace. There are no time limits or deadlines to worry about. Enroll today and begin expanding your coding horizons.

Furthermore, if you are looking for a broader selection of Python courses, check out our Python course repository for a wide array of topics suitable for all skill levels!


From building simple scripts to creating complex programs, handling exceptions in Python is a crucial skill that every developer needs. As such, we recommend leaving no stone unturned in your journey to fully grasp this topic.

By joining us at Zenva and enrolling in our Python Mini-Degree, you’ll find comprehensive, interactive, and engaging material to keep pushing the boundaries of your coding skills. Whether you’re a novice or a seasoned programmer, there’s always a new corner of Python to explore. Let’s start exploring together today!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

Python Blog Image

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