确定要从回溯中使用的异常

时间:2012-03-08 19:49:58

标签: python

我想在用户因密码错误而登录失败时捕获异常。 所以我使用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)是否有一个基本的想法来确定我们从每个错误中得到的异常是什么?

1 个答案:

答案 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)