JavaRush /Курси /Python SELF UA /Логування та обробка помилок для стійкої роботи скрипта

Логування та обробка помилок для стійкої роботи скрипта

Python SELF UA
Рівень 38 , Лекція 0
Відкрита

1. Логування

Сьогодні ми зануримося у тему, яка, можливо, врятує вам чимало нервових клітин і дорогоцінного часу — у логування та обробку помилок. Навіть найдосвідченіший програміст не застрахований від помилок, і ваше завдання — зробити ці помилки передбачуваними та керованими. Уявіть, що ви археолог на розкопках, і ваше завдання — оберігати свою експедицію від несподіваних обвалів і підступних пасток — а логування та обробка помилок це ваш надійний компас і щит у цій ризикованій справі!

Коли ми говоримо про логування у програмуванні, ми маємо на увазі процес запису інформації про роботу програми. Це процеси, які відбуваються всередині вашого коду і можуть бути не помітні з першого погляду. Записуючи логи, ви залишаєте собі підказки, як Гензель і Гретель залишали хлібні крихти в лісі, щоб повернутися додому.

Встановлення та налаштування логування

Почнемо з основних інструментів у Python. Для логування ми будемо використовувати вбудований модуль logging. Це ваш швейцарський ніж для запису інформації про хід виконання програми.

Python

import logging

# Налаштування логування
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# Приклад використання
logging.info("Початок роботи скрипта")
logging.error("Це помилка")

        

Які є рівні логування?

  • DEBUG: найдетальніша інформація, зазвичай цікава лише під час діагностики проблем.
  • INFO: підтверджує, що процеси працюють, як очікувалось.
  • WARNING: вказує на щось несподіване і потенційно проблематичне, але програма все ще працює.
  • ERROR: лише серйозні помилки, які викликали збій у виконанні функції.

Ви можете налаштовувати рівень логування, щоб фільтрувати інформацію. Наприклад, якщо вас цікавлять лише помилки й попередження, встановіть рівень logging.WARNING.

Приклад логування у Selenium

Давайте подивимося, як логування може застосовуватися в проєкті з Selenium:

Python

from selenium import webdriver

# Налаштування логування
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

try:
    logging.info("Ініціалізація драйвера Chrome")
    driver = webdriver.Chrome()
    logging.info("Відкриття сторінки Python.org")
    driver.get("https://www.python.org")
    logging.info("Успішне завершення роботи")
except Exception as e:
    logging.error(f"Сталася помилка: {e}")
finally:
    driver.quit()

        

Цей приклад демонструє, як інтегрувати логування у ваш Selenium-скрипт для відстеження його виконання. Ми використовуємо try, except і finally для обробки помилок — про це докладніше нижче.

2. Обробка помилок у Selenium

У програмуванні, як і в житті, помилки неминучі. Але ми можемо контролювати, як ми на них реагуємо. Використання try, except, else і finally дозволяє елегантно перехоплювати і обробляти помилки.

Згадуємо роботу з винятками

Давайте згадаємо, як працює обробка винятків:

Python

try:
    # Код, який може викликати виняток
    result = 10 / 0
except ZeroDivisionError as e:
    # Код, який буде виконано, якщо виник виняток ZeroDivisionError
    logging.error("Ділення на нуль неможливе!")
else:
    # Код, який буде виконано, якщо виняток не виник
    logging.info("Операція успішно виконана")
finally:
    # Код, який буде виконано в будь-якому випадку
    logging.info("Операції завершено")

        

Ваш код у блоці try буде виконано. Якщо виникає помилка типу ZeroDivisionError, код у блоці except буде виконуватись, і програма не впаде. Блок else використовується для виконання коду, якщо виняток не був викликаний. І нарешті, блок finally виконується завжди, незалежно від того, була помилка чи ні.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ