Лабораторная работа 2. Исключения
1. Создайте класс BankAccount, который управляет балансом пользователя. Реализуйте метод withdraw(amount), который уменьшает баланс на amount. Если баланс станет отрицательным, выбрасывайте ValueError. Добавьте механизм блокировки аккаунта: если трижды подряд попытаться снять больше, чем есть на балансе, аккаунт блокируется и выбрасывается исключение AccountLockedError.
2. Реализуйте класс Calculator, который выполняет базовые арифметические операции (+, -, *, /). Добавьте обработку следующих ошибок:
- Деление на ноль (
ZeroDivisionError). - Если переданы нечисловые аргументы (
TypeError). - Если передана неизвестная операция (
UnknownOperationError).
3. Реализуйте класс TicketSystem, который управляет бронированием билетов. У каждого билета есть номер и статус (доступен или забронирован).
Реализуйте метод book_ticket(ticket_id), который бронирует билет.
Если билет уже забронирован, выбросите исключение TicketAlreadyBookedError.
Если билет с таким ID не существует, выбросите TicketNotFoundError.
4. Создайте класс UserManager, который управляет пользователями.
Реализуйте метод add_user(username, age), который добавляет пользователя в систему.
Метод должен выбрасывать исключения:
InvalidUsernameError, если имя содержит запрещенные символы (@, #, $, %, &).AgeRestrictionError, если возраст меньше 18 лет.UserAlreadyExistsError, если пользователь уже добавлен.