Python Raising Exception

Introduction Reading Time: 10 min

Table of Contents

Description

Raising Exceptions: Python allows you to manually trigger exceptions using the raise keyword when you want to signal that something unexpected or erroneous has occurred.
Exception Chaining: When one exception leads to another, Python allows you to chain them using raise ... from ..., preserving the original exception context
. These features help create cleaner, more informative, and more maintainable error-handling code.

Prerequisites

  • Understanding of basic exceptions
  • Knowledge of try-except blocks
  • Familiarity with function calls and stack traces

Examples

Here's a simple program in Python:

✅ Raising a Built-in Exception
def divide(a, b):
    if b == 0:
        # Raise a built-in exception with custom message
        raise ZeroDivisionError("You can't divide by zero.")
    return a / b

# Call the function with 0 to trigger the exception
# print(divide(10, 0))
✅ Raising a Custom Exception
class AgeTooSmallError(Exception):
    pass  # Custom exception class

def check_age(age):
    if age < 18:
        # Raise your custom exception
        raise AgeTooSmallError("Age must be 18 or older.")
    print("Access granted.")

# check_age(16)
✅ Exception Chaining (raise ... from ...)
def convert_to_int(val):
    try:
        return int(val)
    except ValueError as e:
        # Raising a new exception while preserving the original one
        raise RuntimeError("Conversion failed") from e

# convert_to_int("abc")
✅ Accessing Chained Exceptions
try:
    convert_to_int("abc")
except RuntimeError as err:
    print("Caught RuntimeError:", err)
    print("Original Exception:", err.__cause__)  # This shows the chained ValueError

      

Real-World Applications

Creating user-defined error messages in validation systems

Improving API debugging by chaining low-level errors to high-level explanations

Writing custom exceptions for frameworks, libraries, or SDKs

Wrapping low-level system or library errors in business-readable messages

Where topic Can Be Applied

Web applications: Form validation, permission checks

Financial apps: Invalid transactions, suspicious activity alerts

Backend systems: Error logging with complete traceback

Data pipelines: Conversion/processing errors with context

Library design: Custom exceptions for public APIs

Resources

Topic video source

A comprehensive video

Watch

Python pdf

pdf on topic

Visit

Interview Questions

How do you raise an exception in Python?

What is the purpose of custom exceptions?

What is exception chaining?

How do you implement raise ... from ...?

What does the __cause__ attribute represent?

Why is exception chaining useful?