Как мы помним: исключения - это код, который выполняется когда происходит ошибка. И названия исключений прописаны в документации. Но можно писать и собственные исключения. Допустим мы хотим, чтобы list позволял добавить только четные числа. Для начала требуется написать класс исключения. Напишем, например, по смыслу - NonEvenError. NonEvenError будет бросаться при попытке добавить в list нечётное число: Он унаследован от класса Exception и больше ничего от него не требуется, поэтому стоит заглушка - pass. Далее требуется переопределить класс List, для этого напишем класс EvenList: Здесь мы также наследуем, но уже от List-а. Так как мы хотели, чтобы исключение срабатывало при добавлении элементов, то переопределим метод append. Пишем обычный if проверки на чётность и в его теле прописываем ключевое слово super. Super - означает, что мы используем метод из наследуемого класса List, то есть append с аргументом x. Иначе бросаем наше исключение, с помощью команды raise. Также не забывае