Python 电报机器人突然变得沉默

问题描述 投票:0回答:1

我在 python-telegram-bot v20 库上有一个电报机器人。有时它会停止应答,我会收到此错误:

vThe above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/ext/_application.py", line 1729, in process_error
    await callback(update, context)
  File "/Users/leakyspoon/Documents/TelegramBots/GPT.py", line 301, in error_handler
    await context.bot.send_message(chat_id=492065050, text=message)
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/ext/_extbot.py", line 2644, in send_message
    return await super().send_message(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/_bot.py", line 388, in decorator
    result = await func(self, *args, **kwargs)  # skipcq: PYL-E1102
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/_bot.py", line 814, in send_message
    return await self._send_message(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/ext/_extbot.py", line 514, in _send_message
    result = await super()._send_message(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/_bot.py", line 566, in _send_message
    result = await self._post(
             ^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/_bot.py", line 476, in _post
    return await self._do_post(
           ^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/ext/_extbot.py", line 332, in _do_post
    return await super()._do_post(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/_bot.py", line 504, in _do_post
    return await request.post(
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/request/_baserequest.py", line 168, in post
    result = await self._request_wrapper(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/request/_baserequest.py", line 288, in _request_wrapper
    raise exc
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/request/_baserequest.py", line 278, in _request_wrapper
    code, payload = await self.do_request(
                    ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/leakyspoon/Documents/TelegramBots/venv/lib/python3.11/site-packages/telegram/request/_httpxrequest.py", line 240, in do_request
    raise NetworkError(f"httpx.{err.__class__.__name__}: {err}") from err
telegram.error.NetworkError: httpx.ConnectError: [Errno 8] nodename nor servname provided, or not known

如何防止此错误或至少使用错误处理程序处理它?

python telegram-bot python-telegram-bot
1个回答
0
投票

原因:只要你关闭计算机,你的代码就会停止运行。

为了防止这种情况,您可以在服务器上运行您的程序(此处:telegram chatbot),或者使用在线集成开发环境和网络托管服务,例如https://www.pythonanywhere.com/(我是更担心的是还有许多其他选择)。

另外,为了避免所有这些冗长的错误消息,只需使用

try ... except
捕获它即可。

© www.soinside.com 2019 - 2024. All rights reserved.