В Pyrogram для отслеживания неудачного подключения можно использовать обработчик исключений и метод `stop` для остановки клиента.
Пример кода:
```python
from pyrogram import Client, errors
api_id = ...
api_hash = ...
proxy = ...
session_name = ...
with Client(session_name, api_id, api_hash, proxy=proxy) as app:
try:
# Попытка подключения к аккаунту
app.start()
print("Подключение успешно")
# Основная логика работы с аккаунтом
...
except errors.FloodWait as e:
# Обработка ошибки FloodWait (слишком частые запросы)
print(f"Ошибка: FloodWait ({e.x} секунд)")
except errors.PhoneNumberInvalid:
# Обработка ошибки невалидного номера телефона
print("Ошибка: невалидный номер телефона")
except errors.ProxyInvalid:
# Обработка ошибки невалидного прокси
print("Ошибка: невалидный прокси")
except errors.RPCError as e:
# Обработка других ошибок при подключении
print(f"Ошибка: {e.__class__.__name__} - {e}")
finally:
# Остановка клиента в любом случае (неудачное подключение или успешное завершение работы)
app.stop()
```
В примере, если подключение к аккаунту не удалось из-за неправильного прокси, будет возбуждено исключение `ProxyInvalid`. Мы его перехватываем в блоке `except` и выводим сообщение об ошибке. Затем, в блоке `finally`, мы вызываем метод `stop`, чтобы гарантированно остановить клиент.