在Python中尝试使用/ except语法,但有两个相同的例外

时间:2011-05-11 01:08:45

标签: python django

我正在检查两个列表的电子邮件 - 域名列表和个人电子邮件列表。 我将如何构造以下try语句 -

Try: 'email in email_list'

Except DoesNotExist: 'domain in domain list' # if email not found

Except DoesNotExist: 'print error message'   # if both email and domain not found

我需要使用什么语法来构造此语句?

3 个答案:

答案 0 :(得分:7)

听起来你正在寻找类似的东西:

if email in email_list:
    # do something with email
elif domain in domain_list:
    # do something with domain
else:
    print "neither email nor domain found"

在这种情况下可能不需要例外。

答案 1 :(得分:2)

为什么不定义两个例外:DomainDoesNotExistsEmailDomainDoesNotExists

try: 
    'email in email_list'
except DomainDoesNotExists:
    ...
except EmailDomainDoesNotExists:
    ...

只有一种例外类型(例如DoesNotExists)无法做你想要的事情。

但你最好听@Greg Hewgill,在这种情况下你不需要例外

答案 2 :(得分:0)

很难知道你想要做什么。您的大写是一个问题。当您捕获异常时,请从最具体的一般到一般。第一个处理程序块处理异常并使您退出try-except进程。

try:
    yourEmailRoutine
except DomainDoesNotExist:
    ##code to be carried out if domain does not exist...
    print "The domain %s does not exist." % yourDomainName

由于电子邮件经常出现格式错误,您可能希望使用Greg的建议在if-elif-else进程中处理此问题。

相关问题