Добавить в корзинуПозвонить
Найти в Дзене

Изучение языка Python: Исключения и их обработка в Python (Урок 4)

Исключения - это ошибки, которые возникают при выполнении программы. Python предоставляет механизм для обработки исключений, что позволяет управлять ситуациями, когда что-то идет не так в ходе выполнения программы. В этом уроке мы изучим, что такое исключения и как их обрабатывать. Виды исключений В Python существует множество различных видов исключений, и каждый вид представляет собой определенную ошибку. Некоторые из наиболее распространенных видов исключений: Обработка исключений Для обработки исключений в Python используется блок try...except. Блок tryсодержит код, который может вызвать исключение, и блок except содержит код, который будет выполнен в случае возникновения исключения. Вот пример: try:
# Код, который может вызвать исключение
число = int(input("Введите число: "))
результат = 10 / число
print("Результат: ", результат)
except ZeroDivisionError:
# Обработка исключения деления на ноль
print("Ошибка: деление на ноль")
except ValueError:
# Обрабо
Оглавление

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

Виды исключений

В Python существует множество различных видов исключений, и каждый вид представляет собой определенную ошибку. Некоторые из наиболее распространенных видов исключений:

  • SyntaxError: Ошибка синтаксиса, возникающая при нарушении правил написания кода.
  • NameError: Ошибка, возникающая при попытке использования переменной, которая не определена.
  • TypeError: Ошибка, возникающая при попытке выполнить операцию с неправильным типом данных.
  • ValueError: Ошибка, возникающая при попытке использования правильного типа данных, но с недопустимым значением.
  • ZeroDivisionError: Ошибка, возникающая при делении на ноль.

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

Для обработки исключений в Python используется блок try...except. Блок tryсодержит код, который может вызвать исключение, и блок except содержит код, который будет выполнен в случае возникновения исключения. Вот пример:

try:
# Код, который может вызвать исключение
число = int(input("Введите число: "))
результат = 10 / число
print("Результат: ", результат)
except ZeroDivisionError:
# Обработка исключения деления на ноль
print("Ошибка: деление на ноль")
except ValueError:
# Обработка исключения неправильного формата числа
print("Ошибка: введите правильное число")

В этом примере мы используем try, чтобы попытаться выполнить операции, которые могут вызвать исключения. Если исключение возникает, программа переходит в блок except и выполняет код обработки ошибки.

Вы также можете использовать общий блок except, чтобы обработать все исключения, которые не обработаны в других блоках except:

try:
# Код, который может вызвать исключение
число = int(input("Введите число: "))
результат = 10 / число
print("Результат: ", результат)
except ZeroDivisionError:
# Обработка исключения деления на ноль
print("Ошибка: деление на ноль")
except ValueError:
# Обработка исключения неправильного формата числа
print("Ошибка: введите правильное число")
except Exception as e:
# Обработка других исключений
print("Произошла ошибка:", str(e))

Использование блока finally

Блок finally может быть добавлен после блока try и except. Код в блоке finallyвыполняется независимо от того, возникло исключение или нет. Это полезно, например, для освобождения ресурсов, таких как файлы или соединения с базой данных.

try:
# Код, который может вызвать исключение
файл = open("example.txt", "r")
# ...
except FileNotFoundError:
# Обработка исключения отсутствия файла
print("Ошибка: файл не найден")
finally:
# Закрыть файл, независимо от того, возникло исключение или нет
файл.close()

Генерация исключений

Вы также можете явно генерировать исключения с помощью ключевого слова raise. Это полезно, если вы хотите определить свой собственный тип исключения или если нужно вызвать исключение в определенных условиях.

возраст = -5

if возраст < 0:
raise ValueError("Возраст не может быть отрицательным")

В этом примере мы генерируем исключение ValueError с сообщением "Возраст не может быть отрицательным", если возраст меньше нуля.

Примеры задач

Примеры

Пример 1: Обработка ошибки деления на ноль

try:
dividend = int(input("Введите делимое: "))
divisor = int(input("Введите делитель: "))
result = dividend / divisor
print("Результат:", result)
except ZeroDivisionError:
print("Ошибка: деление на ноль")
except ValueError:
print("Ошибка: введите правильное число")

Пример 2: Обработка ошибки открытия файла

try:
filename = input("Введите имя файла: ")
with open(filename, 'r') as file:
content = file.read()
print("Содержимое файла:", content)
except FileNotFoundError:
print("Ошибка: файл не найден")
except Exception as e:
print("Произошла ошибка:", str(e))

Пример 3: Генерация собственного исключения

def divide(a, b):
if b == 0:
raise ValueError("Деление на ноль недопустимо")
return a / b

try:
result = divide(10, 0)
print("Результат:", result)
except ValueError as e:
print("Ошибка:", str(e))

Задачи

  1. Напишите программу, которая запрашивает у пользователя число и выводит его квадрат. Обработайте возможные исключения, такие как ввод неправильного формата числа или деление на ноль.
  2. Напишите программу, которая открывает файл с заданным именем и выводит его содержимое. Обработайте исключение, если файл не найден, и закройте файл в блоке finally.
  3. Напишите программу, которая просит пользователя ввести свое имя. Если имя начинается с буквы "A", выведите сообщение "Ваше имя начинается с 'A'". Если имя начинается с другой буквы, выведите сообщение "Ваше имя начинается с другой буквы". Если введено пустое имя, обработайте исключение.