Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: error handling, logging

Как реализовать обработку ошибок в сервисах проекта?

Проверяет умение проектировать отказоустойчивую обработку исключений в backend-сервисах.

Короткий ответ

  1. Используйте try/except для перехвата ошибок.

  2. Логируйте исключения с контекстом (например, через logging).

  3. Возвращайте пользователю понятные HTTP-статусы (500, 400).

  4. Для критичных ошибок настраивайте алерты (Telegram, Sentry).

Длинный ответ

Практические шаги в Python:

  1. Базовый перехват:

    def process_data(data):
        	try:
            	# Код, который может сломаться
            	result = data["value"] / data["divider"]
        	except KeyError:
            	logging.error("Отсутствует ключ в данных")
            	raise HTTPException(status_code=400, detail="Invalid data")
        	except ZeroDivisionError:
            	logging.error("Деление на ноль")
            	raise HTTPException(status_code=422, detail="Cannot divide by zero")
        	except Exception as e:
            	logging.critical(f"Неизвестная ошибка: {e}")
            	raise HTTPException(status_code=500)
  2. Глобальный обработчик (FastAPI):

    from fastapi import FastAPI, HTTPException
    app = FastAPI()
    
    @app.exception_handler(HTTPException)
    async def custom_handler(request, exc):
        	return JSONResponse(
            	status_code=exc.status_code,
            	content={"error": exc.detail}
        	)
  3. Интеграция с Sentry:

    import sentry_sdk
    sentry_sdk.init(dsn="ВАШ_DSN")
    
    try:
        	risky_operation()
    except Exception as e:
        	sentry_sdk.capture_exception(e)  # Отправка в Sentry

Вывод:
Обработка ошибок должна быть централизованной, информативной и не «проглатывать» исключения.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Python

    Python

Ключевые слова

#error handling

#logging

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.