我正在检查两个列表的电子邮件 - 域名列表和个人电子邮件列表。 我将如何构造以下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
我需要使用什么语法来构造此语句?
答案 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)
为什么不定义两个例外:DomainDoesNotExists
,EmailDomainDoesNotExists
?
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进程中处理此问题。