Skip to content

Урок 14. Помилки та `try/except`

Урок 14. Помилки та try/except

Section titled “Урок 14. Помилки та try/except”

Тривалість: 40–50 хв
XP: 190

Навчитися читати помилки та не дозволяти програмі падати через неправильні дані.

💡 Пояснення простою мовою

Section titled “💡 Пояснення простою мовою”

try/except — це як захисний шолом або подушка безпеки для програми. Ти кажеш: «Спробуй зробити це (try), але якщо станеться помилка — я тебе зловлю (except) і скажу, що пішло не так». Програма НЕ падає, а показує приємне повідомлення. Це як страховка: краще мати її і не мати потреби, ніж мати потребу і не мати її.

graph TD
    A["спробуй (try)"] --> B{"виконується?"}
    B -->|"так, все ок" | C["виконуй далі"]
    B -->|"ні (помилка!)"| D["except → повідомлення"]
    D --> C

🧠 Помилка — це підказка

Section titled “🧠 Помилка — це підказка”
number = int("dragon")

Отримаємо ValueError.

try:
age = int(input("Age: "))
print(age)
except ValueError:
print("Потрібно ввести число!")

🔁 Просимо до правильної відповіді

Section titled “🔁 Просимо до правильної відповіді”
while True:
try:
number = int(input("Введи число: "))
break
except ValueError:
print("Це не число!")
try:
with open("save.txt", "r") as file:
data = file.read()
except FileNotFoundError:
print("Збереження ще немає.")

🧩 Розбираємо по рядках

Section titled “🧩 Розбираємо по рядках”
try: # Пробуємо виконати блок коду
age = int(input("Age: ")) # Запитуємо вік і перетворюємо на число
print(age) # Якщо все добре — друкуємо
except ValueError: # Якщо сталася помилка типу ValueError
print("Потрібно ввести число!") # Показуємо дружнє повідомлення
try:
with open("save.txt", "r") as file: # Пробуємо відкрити файл
data = file.read() # Читаємо вміст
except FileNotFoundError: # Якщо файлу не існує
print("Збереження ще немає.") # Повідомляємо про це
while True: # Безкінечний цикл
try:
number = int(input("Введи число: ")) # Пробуємо отримати число
break # Якщо успішно — виходимо з циклу
except ValueError: # Якщо не число
print("Це не число!") # Повідомляємо і цикл повторюється
  1. Безпечно запитай вік.
  2. Безпечно запитай два числа.
  3. Оброби відсутній файл.
  4. Зроби input, який повторюється після неправильного вводу.

Калькулятор має пережити неправильний input і ділення на нуль.

Знайди, яку помилку викликає:

100 / 0

і оброби її.

Які помилки можливі тут?

number = int(input("Number: "))
result = 100 / number

Марко читає останній рядок traceback та використовує ValueError і FileNotFoundError.

Зроби save/load таким, щоб відсутність save-файлу не ламала програму.

  • Яка помилка виникає при int("dragon")?
  • Чому except ValueError краще за просто except?
  • Що станеться, якщо у блоці try немає помилки — чи виконається except?
  • Як змусити користувача вводити число доти, поки не введе правильно?