Найти в Дзене
поиск работы python

Основы работы с исключениями

try:
# Код, который может вызвать исключение
result = 10 / 0
except ZeroDivisionError:
# Обработка ошибки деления на ноль
result = None
print(result) try:
x = int(input())
y = 10 / x
except (ValueError, ZeroDivisionError) as e:
print(f"Ошибка: {e}")
else:
print("Ошибок нет, результат:", y)
finally:
print("Этот код выполняется в любом случае") def check_positive(num):
if num < 0:
raise ValueError("Число должно быть положительным")
check_positive(-5) try:
num = int(input("Введите число: "))
result = 100 / num
except ValueError:
print("Ошибка: введено не число")
except ZeroDivisionError:
print("Ошибка: нельзя делить на ноль")
else:
print("Результат:", result)
finally:
print("Программа завершила работу") Эта шпаргалка покрывает основные методы работы с исключениями в Python. При необходимости можно расширять функциональность через собственные классы исключений и детальную обработку ошибок.
Оглавление
  • Исключения — ошибки, которые возникают во время выполнения программы.
  • Обрабатываются для предотвращения аварийного завершения и позволяют задать логику реакции.

Конструкция try-except

try:
# Код, который может вызвать исключение
result = 10 / 0
except ZeroDivisionError:
# Обработка ошибки деления на ноль
result = None
print(result)

  • В try пишем потенциально опасный код.
  • В except ловим ошибки по их типу.
  • Можно ловить базовые классы ошибок — так перехватываются и дочерние.

Обработка нескольких исключений

try:
x = int(input())
y = 10 / x
except (ValueError, ZeroDivisionError) as e:
print(f"Ошибка: {e}")
else:
print("Ошибок нет, результат:", y)
finally:
print("Этот код выполняется в любом случае")

  • except (ErrorType1, ErrorType2): перехват нескольких типов ошибок.
  • else: выполняется, если в try не было исключений.
  • finally: выполняется всегда, идеально подходит для освобождения ресурсов.

Генерация исключений с raise

def check_positive(num):
if num < 0:
raise ValueError("Число должно быть положительным")
check_positive(-5)

  • raise используется для сознательного выбрасывания исключений.

Создание собственных исключенийclass MyError(Exception):
pass

def test(value):
if value == 0:
raise MyError("Значение не может быть нулём")

try:
test(0)
except MyError as e:
print("Поймано исключение:", e)

  • Новые классы наследуют базовый класс Exception.
  • Помогают делать ошибки более информативными и точечно управляемыми.

Полный пример с комментариями

try:
num = int(input("Введите число: "))
result = 100 / num
except ValueError:
print("Ошибка: введено не число")
except ZeroDivisionError:
print("Ошибка: нельзя делить на ноль")
else:
print("Результат:", result)
finally:
print("Программа завершила работу")

Эта шпаргалка покрывает основные методы работы с исключениями в Python. При необходимости можно расширять функциональность через собственные классы исключений и детальную обработку ошибок.