Curriculum
In Python, you can create your own custom exceptions by defining a new class that inherits from the Exception
class. Custom exceptions are useful when you want to define your own error conditions that are specific to your application or module.
Here’s an example of how to define a custom exception in Python:
class CustomError(Exception): pass
In this example, we define a new class called CustomError
that inherits from the Exception
class. We don’t define any methods or attributes in this class, so it simply inherits the default behavior of the Exception
class.
You can also define your own methods and attributes in your custom exception class, like this:
class CustomError(Exception): def __init__(self, message, code): super().__init__(message) self.code = code
In this example, we define a new class called CustomError
that has two attributes: message
and code
. We define a constructor method that takes two arguments, message
and code
, and uses the super()
function to call the constructor of the parent Exception
class. We then set the code
attribute to the value of the code
argument.
Here’s an example of how to use a custom exception in Python:
def process_data(data): if not data: raise CustomError("No data found", 404) # process the data here try: process_data([]) except CustomError as e: print("Error:", e, "Error Code:", e.code)
In this example, we define a function called process_data
that takes one argument, data
. If data
is empty, we raise a CustomError
exception with a custom error message and an error code.
We then call the process_data
function with an empty list as the argument. Since data
is an empty list, the CustomError
exception is raised and caught by the except
block. We print the error message and the error code to the console.
Custom exceptions are useful when you want to define your own error conditions that are specific to your application or module. By defining your own custom exceptions, you can make your code more expressive and easier to understand, and provide more meaningful error messages to users.