猿问

python:我如何捕捉 imaplib.abort?

这是我的程序的相关部分:


    import imaplib

    ...

    try:

        M.expunge()

        M.close()

        M.logout()

    except imaplib.abort as e:

        print("IMAP abort")

这是错误消息:


Traceback (most recent call last):

 File "/home/xxx/anaconda3/lib/python3.6/imaplib.py", line 1014, in _command_complete

   typ, data = self._get_tagged_response(tag)

 File "/home/xxx/anaconda3/lib/python3.6/imaplib.py", line 1126, in _get_tagged_response

   self._check_bye()

 File "/home/xxx/anaconda3/lib/python3.6/imaplib.py", line 929, in _check_bye

   raise self.abort(bye[-1].decode(self._encoding, 'replace'))

imaplib.abort: IMAP session state is inconsistent, please relogin.


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

 File "mailstats/autoresponder.py", line 224, in <module>

   M.close()

 File "/home/xxx/anaconda3/lib/python3.6/imaplib.py", line 456, in close

   typ, dat = self._simple_command('CLOSE')

 File "/home/xxx/anaconda3/lib/python3.6/imaplib.py", line 1191, in _simple_command

   return self._command_complete(name, self._command(name, *args))

 File "/home/xxx/anaconda3/lib/python3.6/imaplib.py", line 1016, in _command_complete

   raise self.abort('command: %s => %s' % (name, val))

imaplib.abort: command: CLOSE => IMAP session state is inconsistent, please relogin.


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

 File "mailstats/autoresponder.py", line 226, in <module>

   except imaplib.abort as e:

AttributeError: module 'imaplib' has no attribute 'abort'

因此,如果 imaplib 没有名为 的属性abort,那么如何self.abort()在 929 行中引发_check_bye?


我怎么抓住它?


慕的地8271018
浏览 267回答 1
1回答

30秒到达战场

imaplib.abort误导性的“&nbsp;”行。实际上,您需要抓住imaplib.IMAP4.abort.
随时随地看视频慕课网APP

相关分类

Python
我要回答