我想在用户因密码错误而登录失败时捕获异常。 所以我使用imaplib创建了一个函数。我输入了一个错误的密码并获得了一个包含错误详细信息的回溯。 现在我的问题实际上是一般性的。您如何从错误消息中找出我们在“try and except”主体中提到的异常?
这就是我得到的 - >
>>> count("testarc31@gmail.com","Xbox@36")
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
count("testarc31@gmail.com","Xbox@36")
File "E:\Arindam\py_progs\Mail Notifier\0.0.19\Mail.py", line 24, in count
obj.login(m,p)
File "C:\Python27\lib\imaplib.py", line 500, in login
raise self.error(dat[-1])
error: [AUTHENTICATIONFAILED] Invalid credentials (Failure)
如果我想尝试一下,除了,我会在例外部分提到什么?
try:
login(mail,pass):
except ????:
something
问题:
1)会是什么?这里 。是否可以直接从错误报告中推断出来?
2)是否有一个基本的想法来确定我们从每个错误中得到的异常是什么?
答案 0 :(得分:3)
你想使用这样的东西:
try:
..code that might raise an exception...
except ExceptionType, e:
...do something...
在你的情况下,可能需要这个:
try:
login(mail,pass)
except imaplib.IMAP4.error, e:
print "Ouch -- an error from imaplib!"
要识别异常的类型,您可以查看其异常消息。在这种情况下,它只是“错误” - 遗憾的是模块名称不包括在内。您可以通过以下方式更好地了解它的来源:
try:
login(mail,pass)
except Exception, e:
print type(e)