Исключения в Python — это события, которые происходят в результате определенных действий. Например, при попытке открыть несуществующий файл будет возбуждено исключение. Однако, в некоторых случаях может потребоваться ручное возбуждение исключений, чтобы обработать определенные условия в коде.
Рассмотрим пример. Допустим, есть функция, которая принимает на вход число и возвращает его квадратный корень. Однако, квадратный корень из отрицательного числа не определен, и в этом случае может быть полезно возбудить исключение.
import math def sqrt(x): if x < 0: raise ValueError("Нельзя вычислить квадратный корень из отрицательного числа") return math.sqrt(x)
В данном примере используется ключевое слово raise
, чтобы возбудить исключение. После raise
указывается тип исключения — в данном случае ValueError
, и сообщение, которое будет показано при возбуждении исключения.
Теперь, если попытаться вызвать функцию sqrt
с отрицательным числом, возникнет исключение ValueError
:
sqrt(-1)
Вывод:
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-2-2e0f8a7f289e> in <module> ----> 1 sqrt(-1) <ipython-input-1-2644b44d1042> in sqrt(x) 4 def sqrt(x): 5 if x < 0: ----> 6 raise ValueError("Нельзя вычислить квадратный корень из отрицательного числа") 7 return math.sqrt(x) ValueError: Нельзя вычислить квадратный корень из отрицательного числа
Затем это исключение может быть перехвачено и обработано с помощью блока try/except
:
try: print(sqrt(-1)) except ValueError as e: print(e)
Вывод:
Нельзя вычислить квадратный корень из отрицательного числа
Таким образом, ручное возбуждение исключений позволяет более гибко управлять потоком выполнения программы и обрабатывать различные условия в коде.
Добавить комментарий