class MyError(Exception):
def __init__(self, code, message):
self.code = code
self.message = message
try:
raise MyError(404, "Не найдено")
except MyError as e:
print(f"Code: {e.code}, Message: {e.message}")
MyError
, наследующее от Exception
.
При создании экземпляра MyError
передаются код и сообщение.
В блоке try
это исключение вызывается с кодом 404 и сообщением "Не найдено".
Блок except
перехватывает MyError
, присваивая его переменной e
.
Затем выводится отформатированная строка, содержащая код и сообщение исключения: "Code: 404, Message: Не найдено".
Данный код демонстрирует создание пользовательского исключения в Python и его обработку.
1. Определение пользовательского исключения:
class MyError(Exception):
def __init__(self, code, message):
self.code = code
self.message = message
Здесь мы определяем класс `MyError`, который наследуется от встроенного класса `Exception`. Это означает, что `MyError` является новым типом исключения. Конструктор `__init__` принимает два аргумента: `code` (целочисленный код ошибки) и `message` (строковое описание ошибки). Эти значения сохраняются в атрибутах экземпляра класса `self.code` и `self.message`.
2. Генерация исключения:
try:
raise MyError(404, "Не найдено")
except MyError as e:
print(f"Code: {e.code}, Message: {e.message}")
Блок `try` предназначен для отслеживания исключений. Внутри блока `try` вызывается оператор `raise MyError(404, "Не найдено")`. `raise` генерирует исключение типа `MyError`, передавая код ошибки 404 и сообщение "Не найдено" в конструктор класса `MyError`.
3. Обработка исключения:
Блок `except MyError as e` предназначен для обработки исключения типа `MyError`. Если в блоке `try` было сгенерировано исключение типа `MyError`, то управление передается в блок `except`. `as e` присваивает экземпляр сгенерированного исключения переменной `e`. Затем внутри блока `except` выводится отформатированная строка, которая содержит код ошибки и сообщение об ошибке, используя f-строку. `e.code` и `e.message` позволяют получить доступ к атрибутам экземпляра исключения.
Код выведет на консоль следующую строку:
Code: 404, Message: Не найдено