Python: Обработка исключений (try-except) для новичков

Что такое исключение?

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

Создание и обработка ошибки

Рассмотрим пример: получение числа от пользователя.

chislo = int(input("Введите число: "))
chislo += 5
print(chislo)

Если пользователь введет строку вместо числа, возникнет ошибка ValueError. Для её обработки используем конструкцию try-except:

try:
    chislo = int(input("Введите число: "))
    chislo += 5
    print(chislo)
except ValueError:
    print("Введите целое число!")

Теперь, при вводе строки, вместо ошибки выводится сообщение, и программа продолжает работу.

Обработка ошибок в цикле

Программа, запрашивающая число до корректного ввода:

x = 0
while x == 0:
    try:
        x = int(input("Введите число: "))
        x += 5
        print(x)
    except ValueError:
        print("Введите целое число!")

Цикл while прерывается после успешного ввода числа.

Обработка разных типов исключений

try-except позволяет обрабатывать разные типы исключений. Например, добавим обработку ZeroDivisionError:

try:
    a = 5
    b = 0
    c = a / b
    print(c)
except ZeroDivisionError:
    print("Деление на ноль!")
except ValueError:
    print("Ошибка ввода данных!")

Можно добавить несколько блоков except для разных типов исключений.

Блок finally

Блок finally выполняется всегда, независимо от возникновения исключения. Он полезен для освобождения ресурсов (например, закрытия файлов):

try:
    # ... какой-то код ...
except Exception as e:
    # ... обработка исключения ...
finally:
    print("Блок finally всегда выполняется")

Блок else

Блок else выполняется, если в блоке try не возникло исключений:

try:
    # ... какой-то код ...
except Exception as e:
    # ... обработка исключения ...
else:
    print("Блок else выполняется, если не было исключений")
finally:
    print("Блок finally всегда выполняется")

Обработка исключений важна в Python. Она создаёт устойчивые и надежные программы, способные обрабатывать ошибки без аварийного завершения. Используйте try-except для обработки ошибок при работе с файлами, базами данных и пользовательским вводом, улучшая пользовательский опыт.

Что будем искать? Например,программа