Какие конструкции для обработки исключений существуют в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Python для обработки исключений используются следующие конструкции:
-
try...except: Основа обработки исключений. Блокtryсодержит код, который может вызвать исключение. Если исключение возникает, выполняется соответствующий блокexcept.# Примеры использования try...except try: result = 10 / 0 # Попытка деления на ноль except ZeroDivisionError: print("Ошибка: Деление на ноль!") -
except Exception as e: Ловит любое исключение и присваивает его объектуeдля последующей обработки (например, логирования или вывода сообщения).# Перехват любого исключения try: value = int("abc") except Exception as e: print(f"Произошла ошибка: {e}") -
Множественные
exceptблоки: Позволяют обрабатывать разные типы исключений по-разному.# Обработка нескольких типов исключений try: file = open("non_existent_file.txt", "r") content = file.read() file.close() except FileNotFoundError: print("Ошибка: Файл не найден!") except IOError: print("Ошибка ввода/вывода!") -
except (...): Объединение нескольких типов исключений в одном блоке.# Объединение типов исключений try: some_operation() except (ValueError, TypeError): print("Ошибка значения или типа!") -
try...except...else: Блокelseвыполняется, если в блокеtryне возникло исключений.# Использование else try: num1 = 10 num2 = 2 result = num1 / num2 except ZeroDivisionError: print("Ошибка: Деление на ноль!") else: print(f"Результат деления: {result}") -
try...except...finally: Блокfinallyвыполняется всегда, независимо от того, возникло исключение или нет. Используется для очистки ресурсов (например, закрытия файлов).# Использование finally file = None try: file = open("data.txt", "r") content = file.read() except FileNotFoundError: print("Файл не найден.") finally: if file: file.close() print("Файл закрыт.") -
raise: Позволяет явно вызвать исключение.# Явное возбуждение исключения def validate_age(age): if age < 0: raise ValueError("Возраст не может быть отрицательным!") return age try: validate_age(-5) except ValueError as e: print(f"Ошибка валидации: {e}")