[英]Python customized Exception class should allow to continue the program execution after it has been raised
[英]Continue the execution of a loop after an exception is raised
for item in r.get_iterator():
if 'retweeted_status' in item:
print('aa')
else:
id_twitty = item['id']
count_ret = item['retweet_count']
如果item['id']
抛出KeyError
异常,则执行终止。
如何使for
循环在异常后继续执行?
您可以尝试捕获引发的KeyError
异常,然后将其丢弃:
for item in r.get_iterator():
if 'retweeted_status' in item:
print('aa')
else:
try:
id_twitty = item['id']
count_ret = item['retweet_count']
except KeyError:
pass
对于EAFP
样式,您可以应用LBYL
,如果在item
找不到id
,则使用continue
:
for item in r.get_iterator():
if 'retweeted_status' in item:
print('aa')
elif 'id' not in item:
continue
else:
id_twitty = item['id']
count_ret = item['retweet_count']
您可以先检查item['id']
存在:
for item in r.get_iterator():
if 'retweeted_status' in item:
print('aa')
else:
if 'id' in item:
id_twitty = item['id']
count_ret = item['retweet_count']
如果不存在,则使用None
:
for item in r.get_iterator():
if 'retweeted_status' in item:
print('aa')
else:
id_twitty = item.get('id')
count_ret = item['retweet_count']
如果不存在,请使用其他一些默认值:
default_id = 0
for item in r.get_iterator():
if 'retweeted_status' in item:
print('aa')
else:
id_twitty = item.get('id', default_id)
count_ret = item['retweet_count']
for item in r.get_iterator():
if 'retweeted_status' in item:
print('aa')
else:
id_twitty = item.get('id', None)
count_ret = item.get('retweet_count', None)
if not id_twitty or not count_ret:
print "could not retrieve id or count"
# handle error here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.