Не могу устранить ошибку в софте по телеграмм подпискам

Всем привет.Особых знаний в питоне нет,но написал для себя софт для автоподписки на каналы в телеграмме(нужен был),но не могу устранить ошибку..Постоянно вылетает когда телеграмм дает ограничения на подписки (у него где то 20 в 20 минут можно).Что только не пробовал,но знаний не хватает...Может тут сможет кто помочь Нужно чтобы при виде ошибки(не может подписаться) он либо ждал определенное количество времени и снова приступал к действию или же просто его пропускал

from telethon import TelegramClient
import asyncio


API_ID = 4428245
API_HASH = 'f1296bbf14116c8e2e32767f3ec5bb89'


client = TelegramClient('client', api_id=API_ID, api_hash=API_HASH)


async def chats():
   with open('channels.txt', 'r') as f:
       return f.readlines()


async def main():
   await client.connect()
   channels = await chats()
   for i in channels:
       await client(JoinChannelRequest(i))
       await asyncio.sleep(120)


client.start()
client.loop.run_until_complete(main()) 

Ответы (1 шт):

Автор решения: LightEmpress

Смотри, для отлова ошибок(Исключений) существует конструкция в Python как:

try:
    <Твой код где будет ловиться ошибка>
except:
    <Что будет когда ошибка произойдёт>

Также ты можешь отлавливать определённые ошибки(Исключения), указав их название. Например:

try: 
    1 / 0
except ZeroDivisionError: # ZeroDivisionError - это название ошибки, в нашем случае деление на ноль. (Его можно узнать как из её происхождения, как это произошло в твоём случае, или просто посмотреть в интернете :) )
    print('Произошло деление на ноль')

print('Следующий код...') # Эта строчка выводиться, можешь проверить  

Вот рабочий код:

from telethon import TelegramClient
import asyncio


API_ID = 4428245
API_HASH = 'f1296bbf14116c8e2e32767f3ec5bb89'


client = TelegramClient('client', api_id=API_ID, api_hash=API_HASH)


async def chats():
   with open('channels.txt', 'r') as f:
       return f.readlines()


async def main():
   
   await client.connect()
   try:
       channels = await chats()
       for i in channels:
           await client(JoinChannelRequest(i))
           await asyncio.sleep(120)
   except:
        pass # Можешь написать здесь свой код 
client.start()
client.loop.run_until_complete(main()) 
→ Ссылка