Python:如何捕获这种异常?
我正在为AIX 5.3开发一个Python 2.6.1的程序,这个程序需要和IMAP服务器进行交互。现在我遇到了一个异常,但我不知道该怎么处理,因为这个异常似乎没有一个可以用“except”来捕获的名字。这个错误看起来像是连接服务器时出现了超时。
堆栈跟踪的最后一部分是这样的:
File "/home/chenf/python-2.6.1/lib/python2.6/imaplib.py", line 890, in _command_complete
raise self.abort('command: %s => %s' % (name, val))
abort: command: SEARCH => socket error: EOF
我只想捕获这个特定的错误,这样当它发生时,我可以重新连接到IMAP服务器。请问捕获这种异常的语法是什么?
2 个回答
3
你可以尝试捕捉这个错误,然后找出它的类型:
导入一些模块,比如sys、traceback和pprint。
try:
do what you want to do
except:
type, value, tb = sys.exc_info()
pprint.pprint(type)
print("\n" + ''.join(traceback.format_exception(type, value, tb)).strip("\n"))
10
这个异常是 imaplib.IMAP4.abort(Python 文档),所以捕捉这个异常应该是有效的。