Error handler для сетевых ошибок

This commit is contained in:
2026-02-10 09:39:17 +03:00
parent f11e6ca826
commit b0d1e2b6c2

20
main.py
View File

@@ -1,7 +1,9 @@
from telegram.error import NetworkError
from telegram.ext import (
ApplicationBuilder,
CallbackQueryHandler,
CommandHandler,
ContextTypes,
MessageHandler,
filters,
)
@@ -41,6 +43,21 @@ from src.handlers import (
from src.logger import logger
async def error_handler(update: object, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Обработчик ошибок бота."""
error = context.error
# Сетевые ошибки при polling - это норма, логируем компактно
if isinstance(error, NetworkError):
logger.warning(f"Network error during polling: {error}")
return
# Для остальных ошибок логируем с контекстом
logger.error(
f"Exception while handling update {update}: {error}", exc_info=context.error
)
def main() -> None:
"""Точка входа приложения."""
logger.info("Запуск бота...")
@@ -125,6 +142,9 @@ def main() -> None:
MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text_message)
)
# Error handler
app.add_error_handler(error_handler)
logger.info("Бот запущен")
app.run_polling()