Junior
172
Cum să creezi un tip de excepție personalizat în Python?
Răspuns de la AI
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}")