Назад к вопросам
Middle
70
questionbank

Зачем может потребоваться создание собственного типа исключений?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Создание собственного типа исключений позволяет:

  • Улучшить читаемость и понимание кода: Исключения с осмысленными именами явно указывают на характер ошибки.
  • Обеспечить более гранулярную обработку ошибок: Можно ловить и обрабатывать конкретные типы ошибок, а не общие Exception.
  • Передавать дополнительную информацию об ошибке: В собственный тип исключения можно добавить атрибуты для хранения контекстных данных.
  • Создать иерархию ошибок: Организовать связанные исключения в логическую структуру, облегчая их обработку.

Пример:

# Define a custom exception for invalid input
class InvalidInputError(ValueError):
    def __init__(self, message, value):
        super().__init__(message) # Call the base class constructor
        self.value = value # Store the problematic value

# Function that raises the custom exception
def process_input(data):
    if not isinstance(data, int):
        raise InvalidInputError("Input must be an integer", data) # Raise the custom exception
    return data * 2

# Example usage with exception handling
try:
    result = process_input("hello")
except InvalidInputError as e:
    print(f"Error processing input: {e.message}, value: {e.value}") # Access custom attributes