python:如何捕获 imaplib.abort?

标签 python exception imaplib

这是我程序的相关部分:

    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 的属性,那么 _check_bye 的第 929 行如何引发 self.abort()

我如何捕捉它?

最佳答案

imaplib.abort”行具有误导性。实际上,你需要 catch imaplib.IMAP4.abort .

关于python:如何捕获 imaplib.abort?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54601622/

相关文章:

python - 安装了较新版本和默认版本后,如何打开较早版本的 python?

python - 用两个值重置索引

python - 在推文中查找表情符号作为整个簇而不是单个字符

java - Android Activity 力不定期关闭?

scala - 如何重构抛出异常的函数?

python-3.x - 如何计算 Gmail 中我的垃圾邮件中有多少封信?

Python/imaplib - 如何获取消息的标签?

python - 如何在按住某个键时继续打印字符串

ios - 为什么我的 UITableView 会出现 NSInternalInconsistencyException 异常?

python - 使用 IMAP 提取 header 错误 TypeError : initial_value must be str or None, not bytes