Работа с Python 3.7.3, все еще выясняя, как работает обработка исключений.
Я пишу бот xmpp, используя slixmpp. Я пытаюсь сделать так, чтобы, если он потеряет соединение с сервером, он попытался восстановить соединение. Кажется, нет никакого способа сделать это встроенным в slixmpp, поэтому я пишу что-то в свой собственный код, чтобы сделать это.
Я импортировал slixmpp как xmpp и использую его метод send_raw (), чтобы проверить, что мы все еще подключены к серверу.
while True:
time.sleep(5) # Send every 5 seconds just for testing purposes
xmpp.send_raw('aroo?')
Когда я разрываю соединение с сервером, оно выплевывает:
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "testcom.py", line 19, in run
eval(self.thing)()
File "testcom.py", line 28, in check_conn
xmpp.send_raw('aroo?')
File "C:\Program Files\Python37\lib\site-packages\slixmpp\xmlstream\xmlstream.py", line 926, in send_raw
raise NotConnectedError
slixmpp.xmlstream.xmlstream.NotConnectedError
Я предполагаю, что "NotConnectedError" является исключением, которое мне нужно перехватить, поэтому я поместил код в блок try, например так:
try:
while True:
time.sleep(5) # Send every 5 seconds just for testing purposes
xmpp.send_raw('aroo?')
except NotConnectedError:
# Do a thing
pass
И вот что я получаю:
Traceback (most recent call last):
File "testcom.py", line 28, in check_conn
xmpp.send_raw('aroo?')
File "C:\Program Files\Python37\lib\site-packages\slixmpp\xmlstream\xmlstream.py", line 926, in send_raw
raise NotConnectedError()
slixmpp.xmlstream.xmlstream.NotConnectedError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\threading.py", line 917, in _bootstrap_inner
self.run()
"testcom.py", line 19, in run
eval(self.thing)()
File "testcom.py", line 29, in check_conn
except NotConnectedError:
NameError: name 'NotConnectedError' is not defined
Может кто-нибудь сказать мне, что я здесь делаю не так?
Спасибо!