Sobes.tech
Junior

Какво е обработка на изключения в Python?

sobes.tech AI

Отговор от AI

Обработката на изключения в Python е механизъм за прихващане и реагиране на грешки или събития, които прекъсват нормалното изпълнение на програмата.

Използва се блокът try...except...finally или try...except...else...finally.

try:
    # Код, който може да предизвика изключение
    result = 10 / 0
except ZeroDivisionError:
    # Обработка на конкретно изключение
    print("Грешка: деление на нула!")
except Exception as e:
    # Обработка на всяко друго изключение
    print(f"Настъпи грешка: {e}")
else:
    # Изпълнява се, ако в блока try няма изключения
    print("Операцията е успешна.")
finally:
    # Винаги се изпълнява, независимо от изключенията
    print("Блокът finally е изпълнен.")

Основни компоненти:

  • try: Блок с код, в който се очаква възможно изключение.
  • except: Блок с код, който се изпълнява при възникване на определен тип изключение в try. Могат да се използват няколко except за различни типове изключения.
  • else: (По избор) Блок с код, който се изпълнява, ако в try не е възникнало изключение.
  • finally: (По избор) Блок с код, който винаги се изпълнява, независимо дали е имало изключение или не. Често се използва за освобождаване на ресурси (например, затваряне на файлове).
  • raise: Ключова дума за явно предизвикване на изключение.
def divide(a, b):
    if b == 0:
        raise ValueError("Делителят не може да бъде нула")
    return a / b

try:
    divide(10, 0)
except ValueError as e:
    print(f"Обработка на персонализирано изключение: {e}")

Предимства:

  • Повишава надеждността на програмата.
  • Изолира кода, който може да предизвика грешки.
  • Позволява по-чисто разделяне на нормалната логика за изпълнение и логиката за обработка на грешки.