Исключения в Python: обработка ошибок в коде программы
Исключения (exceptions) в языке программирования Python - это специальные сигналы, которые вызываются при возникновении ошибок, как во время выполнения программы, так и во время компиляции.
Примерами ошибок, которые могут вызвать исключения в Python, являются:
- Деление на ноль;
- Обращение к несуществующей переменной или объекту;
- Ошибки открытия или закрытия файлов;
- Попытка вызвать метод или функцию, которая не существует;
- Некорректный синтаксис команды.
Использование исключений позволяет программистам избежать закрытия программы после возникновения ошибки, т.к. можно указать, что надо сделать при возникновении определенного типа ошибок.
Пример использования исключения для предотвращения деления на ноль:
try:
a = 5 / 0
except ZeroDivisionError:
print("Деление на ноль!")
В данном коде, если произойдет деление на ноль, то будет вызвано исключение ZeroDivisionError. Используя блок try-except, мы перехватываем это исключение и выводим сообщение об ошибке.
Если необходимо выводить подробную информацию об ошибке, можно использовать блок try-except-finally:
try:
a = 5 / 0
except ZeroDivisionError as err:
print("Ошибка: ", err)
finally:
print("Конец программы")
Здесь мы также перехватываем исключение ZeroDivisionError, но в блоке except мы используем конструкцию as, чтобы сохранить информацию об ошибке в переменную err. Затем мы выводим сообщение об ошибке, а в блоке finally печатаем сообщение о завершении программы.
Также существует возможность создания собственных исключений, позволяющих создавать уникальные ошибки для конкретных ситуаций. Для этого необходимо определить новый класс, который наследует функциональность стандартного исключения Exception.
class MyException(Exception):
pass
try:
a = input("Введите число: ")
if not a.isdigit():
raise MyException("Введены некорректные данные!")
except MyException as err:
print("Ошибка: ", err)
finally:
print("Конец программы")
Здесь мы создаем свой класс исключения - MyException, который наследует функциональность стандартного класса Exception. Затем, в блоке try, мы запрашиваем ввод числа, и если это число не является целочисленным, мы вызываем наше собственное исключение MyException, передавая ему параметр сообщения об ошибке. В блоке except мы выводим это сообщение, а в блоке finally - сообщение о завершении программы.