Error handler для сетевых ошибок
This commit is contained in:
20
main.py
20
main.py
@@ -1,7 +1,9 @@
|
|||||||
|
from telegram.error import NetworkError
|
||||||
from telegram.ext import (
|
from telegram.ext import (
|
||||||
ApplicationBuilder,
|
ApplicationBuilder,
|
||||||
CallbackQueryHandler,
|
CallbackQueryHandler,
|
||||||
CommandHandler,
|
CommandHandler,
|
||||||
|
ContextTypes,
|
||||||
MessageHandler,
|
MessageHandler,
|
||||||
filters,
|
filters,
|
||||||
)
|
)
|
||||||
@@ -41,6 +43,21 @@ from src.handlers import (
|
|||||||
from src.logger import logger
|
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:
|
def main() -> None:
|
||||||
"""Точка входа приложения."""
|
"""Точка входа приложения."""
|
||||||
logger.info("Запуск бота...")
|
logger.info("Запуск бота...")
|
||||||
@@ -125,6 +142,9 @@ def main() -> None:
|
|||||||
MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text_message)
|
MessageHandler(filters.TEXT & ~filters.COMMAND, handle_text_message)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Error handler
|
||||||
|
app.add_error_handler(error_handler)
|
||||||
|
|
||||||
logger.info("Бот запущен")
|
logger.info("Бот запущен")
|
||||||
app.run_polling()
|
app.run_polling()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user