Исключение - это событие, которое возникает во время выполнения программы, чтобы завершить или изменить нормальный поток программы. Например, ошибка вызывает исключение. Как и другие языки программирования, Python содержит множество встроенных исключений. Эти исключения возникают, если при выполнении программы возникает ошибка. Тип ошибки определяет, какое исключение должно быть вызвано. Когда возникает исключение, интерпретатор Python проверяет, обработано ли исключение; если нет, он завершает программу. В этой статье объясняются исключения в Python на различных примерах.
Встроенные исключения Python
Как обсуждалось ранее, Python имеет множество встроенных исключений, которые возникают при возникновении ошибки во время выполнения программы. Каждое исключение является производным от базового класса «Исключение». Ниже приведены некоторые встроенные исключения Python, а также краткое описание каждого типа исключения:
Исключение | Описание |
---|---|
Исключение | Каждое исключение является производным от этого класса. |
ImportError | Это исключение возникает, когда конкретный модуль импортирован, но не найден. |
EOFError | Это исключение конца файла. Это исключение возникает, когда достигается конец файла. |
ZeroDivisionError | Это исключение возникает, когда число делится на ноль. |
KeyError | Это исключение возникает, если указан или используется определенный ключ, который не определен внутри словаря. |
IndexError | Это исключение возникает при попытке доступа к индексу последовательности, который не входит в диапазон. |
FloatingPointError | Это исключение возникает при сбое операции с плавающей запятой. |
Это некоторые из встроенных исключений в Python. Пожалуйста, посетите официальную документацию для получения дополнительной информации об использовании встроенных исключений в Python, расположенную по адресу https: // docs.питон.org / 3 / library / исключения.html.
Использование исключений в Python
Исключения в Python обрабатываются с помощью оператора try. Фрагмент кода, который может вызвать или вызвать исключение, реализован в блоке try. Рядом с блоком try реализован блок except для обработки исключения. В блоке except мы перехватываем исключение и решаем, какую операцию выполнять, когда мы сталкиваемся с этим конкретным исключением. Синтаксис записи блоков try и except следующий:
пытаться:выполнить операцию или функцию
Кроме:
функциональность для обработки исключения
Теперь мы реализуем простой код в нашем скрипте Python, используя блоки try и except.
Здесь мы напечатаем переменную name, которая не определена. Это вызывает исключение в блоке except.
#implementing the try blockпытаться:
печать (имя)
# реализация блока except
Кроме:
print («Произошло исключение»)
Выход
Если не возникает исключения, выполняется только блок try. В блоке except печатается инструкция о том, что произошло исключение.
Давайте посмотрим на другой пример, где мы определяем переменную имени:
# определение имени переменнойname = "Отметить"
#implementing the try block
пытаться:
печать (имя)
# реализация блока except
Кроме:
print («Произошло исключение»)
Выход
В приведенном выше примере выполняется блок try, а блок исключений пропускается, потому что программа не вызывает никаких исключений. Мы можем определить столько блоков except в нашей программе, сколько захотим. Каждый блок except обрабатывает определенный тип исключения.
#implementing the try blockпытаться:
печать (имя)
# реализация блока except, чтобы отловить ошибку имени
кроме NameError:
print («Переменная не определена»)
# реализация блока except
Кроме:
print ("Что-то пошло не так, кроме ошибки имени")
Выход
В Python Exception - это базовый класс для всех исключений. Вместо того, чтобы записывать имя конкретного исключения в блоке except, мы можем просто написать «Exception» и таким образом перехватить каждый тип исключения.
#implementing the try blockпытаться:
печать (имя)
# реализация блока except для обнаружения ошибки
кроме Exception as exp:
печать (exp.__класс__)
# реализация блока except
Кроме:
print ("Что-то пошло не так, кроме ошибки имени")
Выход
Опыт.__class__ возвращает имя класса исключения.
Точно так же давайте посмотрим на пример класса «ZeroDivisionError».
#implementing the try blockпытаться:
х = 1/0
печать (х)
# реализация блока except для обнаружения ошибки
кроме Exception as exp:
печать (exp.__класс__)
# реализация блока except
Кроме:
print ("Что-то пошло не так, кроме ошибки имени")
Выход
Блок else
Блок else используется с блоками try и exception. Блок else определяет фрагмент кода, который выполняется, если блок try выполняется успешно и ошибок не возникает. Иногда вам может потребоваться распечатать сообщение или выполнить функцию, когда блок try был успешно выполнен. По этой причине мы можем реализовать блок else с блоками try и except.
В этом примере мы реализуем блок else в нашем скрипте Python.
#implementing the try blockпытаться:
х = 1/2
печать (х)
# реализация блока except для обнаружения ошибки
кроме Exception as exp:
печать (exp.__класс__)
# реализация блока else
еще:
print («Все прошло хорошо»)
Выход
Блок else выполняется после успешного выполнения блока try.
Давайте теперь посмотрим на другой пример, используя блок else.
#implementing the try blockпытаться:
name = "Отметить"
# реализация блока except для обнаружения ошибки
кроме Exception as exp:
печать (exp.__класс__)
# реализация блока else
еще:
print ("Имя:", имя)
Выход
В приведенном выше примере переменная name определяется внутри блока try и печатается в блоке else.
Последний блок
В наконец-то блок содержит фрагмент кода, который должен быть выполнен независимо от того, вызывает ли блок try исключение. Блок finally не является обязательным и объявляется с блоком try. Например, если мы открыли текстовый файл для чтения блока try, и он вызывает ошибку или исключение, лучше заключить файл в блок finally, даже если ошибка возникает. Давайте реализуем блок finally в нашем скрипте Python.
#implementing the try blockпытаться:
печать (my_dict)
# реализация блока except для обнаружения ошибки
кроме Exception as exp:
печать (exp.__класс__)
# реализация блока finally
наконец-то:
print ("Это последний блок")
print ("Выполняется блок finally")
Выход
На выходе видно, что блок try вызывает исключение. Однако блок finally выполняется в конце.
Теперь давайте откроем текстовый файл в блоке try, который вызывает исключение, в то время как файл, заключенный в блок finally.
#implementing the try blockпытаться:
fileObj = open ("mystudent.xml "," r ")
fileObj.искать (-2)
печать (fileObj.readlines ())
# реализация блока except
кроме Exception as exp:
печать (exp.__класс__)
# реализация блока finally
наконец-то:
fileObj.Закрыть()
print («Файл успешно закрыт»)
Выход
Как видите, независимо от ошибки значения файл был успешно закрыт внутри блока finally.
Поднять исключение
Хотя исключения возникают автоматически при возникновении ошибки, в Python вы также можете создавать исключения вручную. В поднимать ключевое слово используется для вызова или выброса исключения.
Теперь мы вызовем некоторые исключения, используя ключевое слово Raise. В следующем примере условие if реализовано для проверки неотрицательных чисел. Если существуют какие-либо неотрицательные числа, возникает исключение «Неотрицательные числа не допускаются».
# объявление двух числовых переменныхчисло1 = 20
число2 = -10
если ((число1<0) | (num2<0)):
Raise Exception («Неотрицательные числа не допускаются»)
еще:
печать (число1 + число2)
Выход
Заключение
Исключение возникает в ответ на ошибку во время выполнения. В Python мы можем обрабатывать исключения, используя блоки try и except. В этой статье объясняется, как использовать исключения в Python на различных примерах.