Назад к вопросам
Middle
69
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