看起来客户端的同步版本不会引发任何错误? 使用telethon.sync处理错误的正确方法是什么?
下面的代码使客户端进入“睡眠”状态,但不会出错。
我尝试对FloodWaitError
进行显式例外处理,但这不能解决问题。
from telethon.sync import TelegramClient
from telethon.tl.functions.channels import GetFullChannelRequest
if __name__ == '__main__':
setup_logging(level=logging.INFO)
tg = TelegramClient(
'anon',
api_id=config.API_ID,
api_hash=config.API_HASH,
)
with tg as client:
try:
result = client(GetFullChannelRequest(-1001100118939))
except ValueError as e:
print(e)
break;
# print('Flood wait for ', e.seconds)
# time.sleep(e.seconds)
print(result)
答案 0 :(得分:1)
<div id="hSandwich">
<div class="hSandwich-01 hSandwichItem"></div>
<div class="hSandwich-02 hSandwichItem"></div>
<div class="hSandwich-03 hSandwichItem"></div>
</div>
不会更改异常的行为。但是,telethon.sync
不是FloodWaitError
,因此您的ValueError
不会抓住它。以下将起作用:
except
请注意,如果默认情况下泛洪错误少于一分钟,则库会自动进入休眠状态,在这种情况下,它将等待并且不会为了方便起见而升高。