Raising Exceptions
Discover how to raise and control exceptions in your code.
Raising Exceptions is a free Learn AI with Python lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Learn AI with Python learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
1
Introduction to Raising Exceptions
In Python, you can raise exceptions intentionally using the raise keyword. This is useful for validating input, enforcing constraints, or stopping the program when something unexpected occurs.
In this lesson, you’ll learn how to raise exceptions effectively and handle them appropriately.

2
What Does Raising an Exception Mean?
Raising an exception means interrupting the normal flow of the program to indicate that an error has occurred. This is done using the raise keyword.
# Raising a basic exception
raise Exception("An error occurred.")3
Using Built-in Exceptions
Python provides several built-in exceptions, such as ValueError and TypeError, that you can use with the raise keyword:
# Raising a built-in exception
number = "abc"
if not number.isdigit():
raise ValueError("Input must be a number.")4
Raising Exceptions in Functions
You can raise exceptions in functions to signal errors to the caller:
# Raising exceptions in a function
def divide(a, b):
if b == 0:
raise ZeroDivisionError("Division by zero is not allowed.")
return a / b
try:
result = divide(10, 0)
except ZeroDivisionError as e:
print(e)5
Reraising Exceptions
You can reraise an exception after catching it to allow higher-level code to handle it:
# Reraising an exception
try:
raise ValueError("Invalid value.")
except ValueError as e:
print(f"Caught an error: {e}")
raise # Reraise the exception6
Customizing Exception Messages
You can provide detailed error messages to make debugging easier:
# Customizing exception messages
def check_age(age):
if age < 0:
raise ValueError("Age cannot be negative. Please enter a valid age.")
try:
check_age(-5)
except ValueError as e:
print(e)7
Using Exception Chaining
Exception chaining allows you to associate one exception with another using the from keyword:
# Exception chaining
try:
raise ValueError("Invalid value.")
except ValueError as e:
raise RuntimeError("A runtime error occurred.") from e8
Best Practices for Raising Exceptions
Here are some tips for raising exceptions:
- Use built-in exceptions whenever possible.
- Provide clear and informative error messages.
- Reraise exceptions only when necessary.
9
10
Common Mistakes with Raising Exceptions
Here are some mistakes to avoid:
- Raising generic exceptions without providing specific error messages.
- Using custom exceptions unnecessarily when built-in exceptions are sufficient.
- Not handling exceptions properly after raising them.
11
What Did We Learn?
In this lesson, you learned:
- How to use the
raisekeyword to intentionally raise exceptions. - How to use built-in exceptions and provide custom error messages.
- How to reraise exceptions and use exception chaining.
Great job! Let’s move to the next topic.

Frequently asked questions
Is the “Raising Exceptions” lesson free?
Yes — the full text of “Raising Exceptions” is free to read here on the web, and the Learn AI with Python course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Learn AI with Python course, upgrade to CoddyKit PRO.
What will I learn in “Raising Exceptions”?
Discover how to raise and control exceptions in your code. You practise Learn AI with Python with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Learn AI with Python?
No prior experience is required. Learn AI with Python on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Raising Exceptions” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Learn AI with Python lesson?
Yes. Every Learn AI with Python lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.