Лабораторная работа 1. Исключения.
Исключения
Исключения - это механизм обработки ошибок во время выполнения программы. Они позволяют программе продолжить работу после обнаружения ошибки, а не завершаться аварийно. В Python есть встроенные исключения, которые обрабатывают большинство типовых ошибок.
try: <код, который может вызвать исключения при выполнении>
except <КлассИсключения_1>:
<код обработки исключения>
except <КлассИсключения_2>:
<код обработки исключения>
...
else:
<код выполняется, если не вызвано исключение в блоке try>
finally:
<код, который выполняется всегда>
В Python можно создавать свои собственные исключения. Синтаксис создания исключения такой же, как и у создания класса. При создании исключения его необходимо наследовать от какого-либо стандартного класса-исключения (например, от Exception).
class NegativeNumberError(Exception):
"""Ошибка: число не должно быть отрицательным"""
pass
def sqrt(x):
if x < 0:
raise NegativeNumberError("Нельзя вычислить корень из отрицательного числа!")
return x ** 0.5
print(sqrt(-4)) # Ошибка!
Задания
1. Напишите программу, которая запрашивает у пользователя два числа и выполняет их деление. Обработайте исключение ZeroDivisionError
, если пользователь вводит ноль в качестве делителя.
2. Запросите у пользователя число и преобразуйте его в int
. Обработайте исключение ValueError
, если пользователь вводит нечисловое значение.
3. Создайте список из нескольких элементов и попробуйте обратиться к индексу, который выходит за границы списка. Обработайте IndexError
.
4. Создайте словарь и попытайтесь получить значение по несуществующему ключу. Обработайте исключение KeyError
.
5. Напишите функцию, которая вычисляет квадратный корень числа. Если число отрицательное, выбрасывайте ValueError
и обрабатывайте его.
6. Создайте пользовательское исключение UnderageError
. Напишите программу, которая запрашивает возраст пользователя и выбрасывает это исключение, если возраст меньше 18 лет.
7. Напишите программу, которая запрашивает у пользователя число и выполняет над ним арифметическую операцию. Обработайте возможные исключения и добавьте блок finally
, который всегда выводит сообщение "Программа завершена"
.
8. Создайте исключение
AuthenticationError
. Напишите программу, которая запрашивает у пользователя логин и пароль, а затем проверяет их на соответствие заранее заданным значениям. Если введенные данные неверные, выбрасывайте исключение.