Python

Обработка исключений в Python

Обработка исключений в Python
Когда мы запускаем любой код, содержащий ошибку, ошибка отображается в выводе, останавливая выполнение программы. Некоторые ошибки могут не распознаваться пользователями и создавать для них нежелательную ситуацию. Но если ошибка может быть отображена в понятном для пользователей формате, то им будет легко узнать причину ошибки. В любом объектно-ориентированном программировании, попробуй поймать или же попробовать-поймать-наконец блок используется для обработки ошибок и отображения их в удобочитаемом формате, который называется обработкой исключений. Как обработка исключений может быть выполнена в скрипте Python, показано в этом руководстве.

Синтаксис:

пытаться:
блокировать…
кроме исключения:
обработчик…
еще:
блокировать…
наконец-то:
блокировать…

Здесь, если возникает какая-либо ошибка при выполнении операторов пытаться блок, тогда будет сгенерировано исключение и выбросить ошибку в соответствующий Кроме обработчик. Множественные ошибки могут быть сгенерированы в одном пытаться блок, а затем вам нужно написать несколько Кроме обработчики.  Заявления еще блок будет выполнен, если в пытаться блокировать. Заявления наконец-то блок будет выполнен, если возникнет какая-либо ошибка или нет. Для обработки исключений, используя еще а также наконец-то блоки не обязательны. Различные типы обработки исключений в python объясняются в следующей части руководства.

Пример-1: Использование одного блока try-except для проверки числовых данных:

В этом примере показано очень простое использование обработки исключений в Python. в пытаться блок, два ввода будут взяты от пользователя, один - строковое значение, а другой - числовое значение.  Если пользователь вводит какое-либо строковое значение вместо числового значения для второго ввода, тогда ValueError исключение будет сгенерировано python3 и пользовательское сообщение об ошибке будет отображаться из Кроме блокировать.

#!/ usr / bin / env python3
# Определить блок try
пытаться:
# Принимаем любые данные в виде строки
name = input ("Введите свое имя: \ n")
# Принимаем любые числовые данные
age = int (input ("Введите свой возраст: \ n"))
# Распечатать отформатированные данные с именем и возрастом
print ("Здравствуйте,% s, Вам% s лет." %(Назовите возраст))
# обрабатывать ошибки ввода
кроме (ValueError):
# Распечатать собственное сообщение об ошибке
print ("Неправильный ввод! Вы должны ввести число в соответствии с вашим возрастом.")

Выход:

Скрипт выполняется два раза в следующем выводе с неправильным вводом и правильным вводом. В первый раз, когда пользователь набирает 'Тридцать один' в качестве значения возраста для второго входа, который принимает числовое значение, а затем ValueError генерируется, и сообщение об ошибке отображается из блока except. Во второй раз ошибка не генерируется для правильных входных значений.

Пример-2: Использование блока multiple except для обработки нескольких ошибок:

В этом примере показано, как можно использовать блок multiple except для обработки нескольких ошибок.  В этом скрипте будут обрабатываться два типа ошибок. Имя файла принимается как ввод от пользователя для чтения. Если файл не существует, он сгенерирует IOError исключение, и если файл существует, но пуст, он вызовет настраиваемое исключение. Для этого в скрипте используются два блока except. Если ни одна из ошибок не возникает, отображается содержимое файла.

#!/ usr / bin / env python3
# Импортировать модуль ОС
импорт ОС
# Определить блок try
пытаться:
# Принимаем имя файла в качестве входных данных
filename = input ('Введите имя файла \ n')
# Открываем файл для чтения
file_handler = open (имя файла)
# Установить понтер поиска от 0 до конца файла
file_handler.seek (0, os.SEEK_END)
# Считываем размер файла в байтах
size = file_handler.рассказать()
# Распечатать содержимое файла и количество символов файла
если (размер> 0):
# Установить понтер на начало файла
file_handler.искать (0)
# Прочитать и сохранить содержимое файла в переменной
file_content = обработчик_файлов.читать()
print ("\ nСодержимое файла, указанного ниже \ n")
печать (file_content)
print ("Размер файла% d байт"% size)
еще:
# Вызвать исключение, если файл пуст
поднять исключение ('В файле нет содержимого.')
# Распечатать сообщение об ошибке, если файл не существует
кроме IOError как ошибки:
печать (ошибка)
# Распечатать сообщение об ошибке, если файл пуст
кроме исключения как e:
print ('Ошибка:% s'% e)
# Распечатать сообщение, если ошибки нет
еще:
print ('Ошибок не происходит')

Выход:

Скрипт выполняется трижды. В первый раз дается имя файла, которого не существует, и вывод показывает сообщение IOError. Во второй раз дается имя файла, которое существует, но не имеет содержимого, а на выходе отображается настраиваемое сообщение. В третий раз дается имя файла, которое существует и содержит текст. Вывод показывает содержимое файла.

Пример-3: Использование блока try-except-finally для обработки ошибки деления

В примере показано использование блока try-except-finally для обработки ошибки деления. Два числовых значения будут приняты в качестве входных и разделят первый вход на второй вход в блоке try. Здесь могут возникнуть два типа ошибок. Один ValueError когда пользователь вводит любое значение без числа, а другое - ZeroDivisionError когда пользователь возьмет 0 в качестве второго входа.

#!/ usr / bin / env python3
# Определить блок try
пытаться:
# Введите два числа с плавающей запятой
n1 = float (input ('Введите число \ n'))
n2 = float (input ('Введите число \ n'))
# Разделите эти числа
деление = n1 / n2
# Обработка ошибок
кроме (ZeroDivisionError, ValueError):
print («Ошибка делится на ноль или значение не является числом»)
# Распечатать сообщение, если ошибок не произошло
еще:
print ("Результат деления% f"% деление)
# Распечатать сообщение, если возникает ошибка или нет
наконец-то:
print ("Конец")

Выход:

Здесь сценарий запускается два раза с правильными входами и со вторым входом как 0. Итак, второе исключение генерируется и отображает сообщение об ошибке.

Заключение:

В этом руководстве показан базовый процесс обработки исключений в python3 для новых пользователей python. Читатели смогут понять, что такое обработка исключений и как ее применять в скрипте Python, после того, как попрактиковались в приведенных выше примерах.

Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...
Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...