본문 바로가기
개념/혼자 공부하는 파이썬

python) custom exception class

by kiseno 2024. 11. 1.
728x90
반응형
SMALL
class Custom(Exception):
    def __init__(self):
        super().__init__()

raise Custom

In this simplified example, a custom exception class named `Custom` is defined, which inherits from Python's built-in `Exception` class. The `__init__` method of this class calls the initializer of the base `Exception` class using `super().__init__()`. This setup ensures that `Custom` behaves like a standard exception in Python, albeit without any custom properties or methods beyond what `Exception` provides.

The last line, `raise Custom`, demonstrates how to raise an instance of the `Custom` exception. When this line is executed, Python will halt the current execution flow and attempt to find an enclosing `try`...`except` block that can catch `Custom` exceptions. If no such block is found, or if a more general `except` block that catches all exceptions is not present, Python will terminate the program and print a traceback to the stderr, indicating that a `Custom` exception was raised.

Here's a brief breakdown of what each part does:

- **`class Custom(Exception):`** Defines a new class `Custom` that extends Python's built-in `Exception` class. This makes `Custom` a throwable exception type.
- **`def __init__(self):`** Defines the initializer for the `Custom` class. It only calls the initializer of the base class (`Exception`) to ensure that all the base class initialization logic runs. This example does not add any additional properties or initialization logic to the `Custom` exception.
- **`raise Custom`**: Creates and raises an instance of the `Custom` exception. In practice, you would typically raise exceptions in response to some error condition. Here, the exception is raised unconditionally.

This pattern is useful when you need to define custom exception types in your application to represent specific error conditions more precisely than using Python's standard exceptions. Even though this particular `Custom` class does not yet include additional attributes or methods, it serves as a foundation for more sophisticated exception handling by allowing you to add custom behavior or information to your exceptions in the future.

728x90
반응형
LIST