It has two purposes.

jackcogdill has given the first one:

It's used for raising your own errors.

if something:
   raise Exception('My error!')

The second is to reraise the current exception in an exception handler, so that it can be handled further up the call stack.

try:
  generate_exception()
except SomeException as e:
  if not can_handle(e):
    raise
  handle_exception(e)
Answer from Ignacio Vazquez-Abrams on Stack Overflow
🌐
W3Schools
w3schools.com › python › ref_keyword_raise.asp
Python raise Keyword
Bootcamp Python Certificate Python Training ... The raise keyword is used to raise an exception. You can define what kind of error to raise, and the text to print to the user. ... If you want to use W3Schools services as an educational ...
🌐
W3Schools
w3schools.com › python › gloss_python_raise.asp
Python Raise an Exception
Raise an error and stop the program if x is lower than 0: x = -1 if x < 0: raise Exception("Sorry, no numbers below zero") Try it Yourself » · The raise keyword is used to raise an exception.
🌐
W3Schools
w3schools.com › python › python_try_except.asp
Python Try Except
Raise an error and stop the program if x is lower than 0: x = -1 if x < 0: raise Exception("Sorry, no numbers below zero") Try it Yourself » · The raise keyword is used to raise an exception.
🌐
W3Schools
w3schools.in › python › exception-handling
Python Exceptions Handling - W3Schools
try/except: catch the error and recover from exceptions hoist by programmers or Python itself. try/finally: Whether exception occurs or not, it automatically performs the clean-up action. assert: triggers an exception conditionally in the code. raise: manually triggers an exception in the code.
🌐
W3Schools
w3schools.com › python › trypython.asp
W3Schools online PYTHON editor
Run ❯ Get your own Python server · ❯Run Code Ctrl+Alt+R Change Orientation Ctrl+Alt+O Change Theme Ctrl+Alt+D Go to Spaces Ctrl+Alt+P · Traceback (most recent call last): File "demo_ref_keyword_raise.py", line 4, in <module> raise Exception("Sorry, no numbers below zero") Exception: Sorry, no numbers below zero
🌐
W3Schools
w3schools.com › python › python_ref_exceptions.asp
Python Built-in Exceptions
The table below shows built-in exceptions that are usually raised in Python: ❮ Previous Next ❯ · ★ +1 · Sign in to track progress · REMOVE ADS · PLUS · SPACES · GET CERTIFIED · FOR TEACHERS · BOOTCAMPS · CONTACT US · × · If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail: sales@w3schools.com ·
🌐
w3resource
w3resource.com › python › python-raise-exceptions-with-examples.php
Python Raising Exceptions: Learn How and When to Raise Errors
August 26, 2024 - Master raising exceptions in Python with detailed examples, covering built-in and custom errors, loops, and functions for robust error handling.
Find elsewhere
🌐
OpenStax
openstax.org › books › introduction-python-programming › pages › 14-5-raising-exceptions
14.5 Raising exceptions - Introduction to Python Programming | OpenStax
March 13, 2024 - The following class represents a pizza for sale. The SIZES dictionary maps an abbreviation to a size's name and price. Line 11 checks if the size received by the constructor is in the dictionary. Line 12 raises a ValueError with specific error message.
🌐
GeeksforGeeks
geeksforgeeks.org › python-raise-keyword
Python Raise Keyword - GeeksforGeeks
October 30, 2023 - In this article, we will learn how the Python Raise keyword works with the help of examples and its advantages.
🌐
DiscoverWebTech
discoverwebtech.com › web-application-development › learn-python-programming-w3schools
Learn Python Programming with W3Schools: Web Development
May 12, 2025 - Start learning Python programming for free on W3Schools. Understand basics, OOP, and more with hands-on tutorials for beginners.
🌐
W3Schools
w3schools.com › python › python_iterators.asp
Python Iterators
class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): if self.a <= 20: x = self.a self.a += 1 return x else: raise StopIteration myclass = MyNumbers() myiter = iter(myclass) for x in myiter: print(x) Try it Yourself » ... If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail: sales@w3schools.com · If you want to report an error, or if you want to make a suggestion, send us an e-mail: help@w3schools.com · HTML Tutorial CSS Tutorial JavaScript Tutorial How To Tutorial SQL Tutorial Python Tutorial W3.CSS Tutorial Bootstrap Tutorial PHP Tutorial Java Tutorial C++ Tutorial jQuery Tutorial
🌐
GeeksforGeeks
geeksforgeeks.org › python › user-defined-exceptions-python-examples
User-defined Exceptions in Python with Examples - GeeksforGeeks
February 12, 2026 - Follow these steps to create and ... or any of its subclasses. Raise the Exception: Use the raise statement to raise the user-defined exception when a specific condition occurs....
🌐
Python documentation
docs.python.org › 3 › tutorial › errors.html
8. Errors and Exceptions — Python 3.14.3 documentation
The sole argument to raise indicates the exception to be raised. This must be either an exception instance or an exception class (a class that derives from BaseException, such as Exception or one of its subclasses).
🌐
W3Schools
w3schools.com › python › python_getstarted.asp
Python Getting Started
Python Examples Python Compiler Python Exercises Python Quiz Python Challenges Python Server Python Syllabus Python Study Plan Python Interview Q&A Python Bootcamp Python Certificate Python Training ... At W3Schools, you can try Python without installing anything.
🌐
Python Tutorial
pythontutorial.net › home › python oop › python raise from
Python raise from - Python Tutorial
March 28, 2025 - Summary: in this tutorial, you will learn how to use the Python raise from statement to raise an exception with extra information.
🌐
Real Python
realpython.com › ref › keywords › raise
raise | Python Keywords – Real Python
In this tutorial, you'll learn how to raise exceptions in Python, which will improve your ability to efficiently handle errors and exceptional situations in your code.
🌐
W3Schools
w3schools.com › python › gloss_python_iterator_stop.asp
Python Stop Iteration
class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): if self.a <= 20: x = self.a self.a += 1 return x else: raise StopIteration myclass = MyNumbers() myiter = iter(myclass) for x in myiter: print(x) Try it Yourself » · Python Iterator Tutorial Iterators Iterator vs Iterable Loop Through an Iterator Create an Iterator ... If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail: sales@w3schools.com
🌐
Reddit
reddit.com › r/learnpython › python exception handling: understanding raise statement
r/learnpython on Reddit: Python exception handling: Understanding raise statement
September 4, 2024 -

In comparison to try, except, else, and finally blocks, raise statement seems not always needed. I guess it is an optional tool in exception handling that may well be redundant in some scenarios.

For example, these are the two codes with and without use of raise:

Without raise

def check_input(val):
    if val < 0:
        print("Input must be non-negative")
    else:
        print(f"Processing value: {val}")

check_input(-10)

With raise:

def check_input(val):
    if val < 0:
        raise ValueError("Input must be non-negative")
    print(f"Processing value: {val}")

try:
    check_input(-10)
except ValueError as e:
    print(f"Error: {e}")

Given print function achieving the desired result, not sure if raise statement really needed.