Назад к вопросам
Junior
64
questionbank
Как создать собственный тип исключения в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Для создания собственного исключения необходимо унаследоваться от базового класса Exception (или одного из его подклассов).
# Определение собственного исключения
class MyCustomError(Exception):
# Переопределение магического метода __init__ для добавления собственных данных
def __init__(self, message, error_code):
# Вызов конструктора родительского класса Exception
super().__init__(message)
# Добавление собственных атрибутов
self.error_code = error_code
# Переопределение магического метода __str__ для красивого вывода
def __str__(self):
return f"Ошибка #{self.error_code}: {self.args[0]}"
Пример использования:
# Функция, которая может вызвать наше исключение
def process_data(data):
if not isinstance(data, int):
raise MyCustomError("Неверный тип данных", 100)
if data < 0:
raise MyCustomError("Число должно быть положительным", 200)
return data * 2
# Обработка исключения
try:
result = process_data("hello")
print(result)
except MyCustomError as e:
print(f"Перехвачено собственное исключение: {e}")
print(f"Код ошибки: {e.error_code}")
try:
result = process_data(-5)
print(result)
except MyCustomError as e:
print(f"Перехвачено собственное исключение: {e}")
print(f"Код ошибки: {e.error_code}")
try:
result = process_data(10)
print(result)
except MyCustomError as e:
print(f"Перехвачено собственное исключение: {e}")
print(f"Код ошибки: {e.error_code}")