Junior
182
Como criar um tipo de exceção personalizado em Python?
Resposta da IA
sobes.tech IA
Для создания собственного исключения необходимо унаследоваться от базового класса 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}")