Обработка исключений Python: создание и перехват пользовательских исключений

В Python вы можете генерировать и перехватывать пользовательские исключения с помощью оператора raiseи блоков try...Exception. Это позволяет вам создавать и обрабатывать собственные исключения на основе конкретных условий или требований вашего кода. Вот несколько методов, которые вы можете использовать для создания и перехвата пользовательских исключений в Python:

Метод 1: определение пользовательского класса исключений
Вы можете создать собственный класс исключений, унаследовав базовый класс Exceptionили любой из его подклассов. Вот пример:

class CustomException(Exception):
    pass
# Throwing the custom exception
raise CustomException("This is a custom exception")
# Catching the custom exception
try:
    # Code that may raise the custom exception
    raise CustomException("This is a custom exception")
except CustomException as e:
    print("Custom exception caught:", str(e))

Метод 2: вызов встроенных исключений с помощью пользовательских сообщений
Вы также можете вызывать встроенные исключения, такие как ValueErrorили TypeError, с помощью пользовательских сообщений об ошибках. Вот пример:

# Throwing a built-in exception with a custom message
raise ValueError("This is a custom value error")
# Catching the built-in exception
try:
    # Code that may raise the built-in exception
    raise ValueError("This is a custom value error")
except ValueError as e:
    print("Value error caught:", str(e))

Метод 3. Создание пользовательского объекта исключения
Вместо определения пользовательского класса исключения вы можете создать собственный объект исключения непосредственно с помощью класса Exception. Вот пример:

# Throwing a custom exception object
raise Exception("This is a custom exception")
# Catching the custom exception object
try:
    # Code that may raise the custom exception object
    raise Exception("This is a custom exception")
except Exception as e:
    print("Custom exception caught:", str(e))

Метод 4: обработка нескольких исключений
Вы можете использовать несколько блоков кромедля раздельной обработки различных типов исключений. Вот пример:

try:
    # Code that may raise different types of exceptions
    raise CustomException("This is a custom exception")
except CustomException as e:
    print("Custom exception caught:", str(e))
except ValueError as ve:
    print("Value error caught:", str(ve))
except Exception as e:
    print("Other exception caught:", str(e))