Как отловить исключение в aiogram
Есть ошибка:
WARNING:aiogram:Goodbye!
Traceback (most recent call last):
File "C:/Users/zahar/Downloads/bot/bot.py", line 21, in
executor.start_polling(dp, skip_updates=True)
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\utils\executor.py", line 41, in start_polling
executor.start_polling(reset_webhook=reset_webhook, timeout=timeout, relax=relax, fast=fast)
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\utils\executor.py", line 305, in start_polling
loop.run_until_complete(self._startup_polling())
File "C:\Users\zahar\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 616, in run_until_complete
return future.result()
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\utils\executor.py", line 356, in _startup_polling
await self._welcome()
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\utils\executor.py", line 346, in _welcome
user = await self.dispatcher.bot.me
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\bot\bot.py", line 27, in me
setattr(self, '_me', await self.get_me())
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\bot\bot.py", line 176, in get_me
result = await self.request(api.Methods.GET_ME, payload)
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\bot\base.py", line 201, in request
return await api.make_request(self.session, self.__token, method, data, files,
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\bot\api.py", line 104, in make_request
return check_result(method, response.content_type, response.status, await response.text())
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\bot\api.py", line 84, in check_result
exceptions.Unauthorized.detect(description)
File "C:\Users\zahar\Downloads\bot\venv\lib\site-packages\aiogram\utils\exceptions.py", line 137, in detect
raise cls(description)
aiogram.utils.exceptions.Unauthorized: Unauthorized
Я хотел бы сделать так, чтобы когда возникала эта ошибка, код автоматически полностью останавливался при помощи os._exit(0), но я не знаю как отловить это исключение или ошибку.
Если написать код, который внизу, то ничего не произойдёт и бот будет дальше работать с этой ошибкой:
if __name__ == "__main__":
try:
executor.start_polling(dp)
except Exception:
os._exit(0)
Ответы (1 шт):
Автор решения: Batman22827
→ Ссылка
import os
if __name__ == "__main__":
try:
executor.start_polling(dp)
except:
os._exit(0)
Этот код сработает при вызове любой из ошибок в процессе работы программы, как вариант, после except указать текст конкретно Вашей ошибки
except: aiogram.utils.exceptions.Unauthorized