__init__
класса исключения.
При создании экземпляра исключения в raise
, параметры передаются как аргументы конструктора.
Они сохраняются как атрибуты объекта исключения, к которым можно получить доступ в блоке except
.
class MyCustomException(Exception):
def __init__(self, message, error_code):
super().__init__(message)
self.error_code = error_code
try:
# ... код, который может вызвать исключение ...
raise MyCustomException("Что-то пошло не так", 500)
except MyCustomException as e:
print(f"Ошибка: {e}, Код ошибки: {e.error_code}")
Передача параметров в собственное исключение в Python позволяет предоставить дополнительную информацию об ошибке, которая может быть полезна для отладки, логирования или обработки исключения. Вот как это можно сделать:
Пример:
class MyCustomError(Exception):
def __init__(self, message, error_code):
super().__init__(message) # Вызов конструктора базового класса
self.error_code = error_code # Сохраняем код ошибки
self.message = message # Сохраняем сообщение об ошибке (не обязательно, но полезно)
def __str__(self):
return f"MyCustomError: {self.message}, Error Code: {self.error_code}"
try:
# ... код, который может вызвать исключение ...
raise MyCustomError("Произошла ошибка в обработке данных", 500)
except MyCustomError as e:
print(e) # Выведет: MyCustomError: Произошла ошибка в обработке данных, Error Code: 500
print(f"Код ошибки: {e.error_code}") # Выведет: Код ошибки: 500
# ... обработка исключения ...
Объяснение:
Использование собственных исключений с параметрами делает код более понятным, упрощает отладку и позволяет более гибко обрабатывать различные типы ошибок.