2013-06-18 71 views
-1

我使用twython从twitter获取一些推文。为了得到推文我使用尝试/除了,就像如何在捕获异常后继续执行?

for follower in followers_file_id: 
    follower = follower.strip() 
    try:  
     if req_user_settings > max_user_settings_req or req_user_tweets > max_tweets_req: 
     time.sleep(15 * 60) 
     tweets_file_name = tweetsFileName(followed_user) 

     user_settings = twitter.show_user(user_id = follower) 
     req_user_settings += 1 

     if not user_settings['protected'] and user_settings['statuses_count'] > 0: 
     tweets = twitter.get_user_timeline(user_id = follower, count = 200, page = 1) 
     req_user_tweets += 1 

     n_tweets =tweets[0]['user']['statuses_count'] 
     n_loops = n_tweets // max_tweets_per_page + 1 
     if n_loops > max_tweet_pages: 
     n_loops = max_tweet_pages 

     if tweets[0]['user']['lang'] == 'en': 
     n_crawled_tweets = writeTweets(tweets, tweets_file_name, n_crawled_tweets) 

     for i_loop in range(1, n_loops):   
     tweets = twitter.get_user_timeline(user_id = follower, count = 200, page = i_loop+1) 
     n_crawled_tweets = writeTweets(tweets, tweets_file_name, n_crawled_tweets) 
     req_user_tweets += 1 

    except TwythonError as e: 
     print str(e) 

如何告诉程序打印错误后继续执行?原因现在在打印错误后,程序停止。

+0

什么是“一些代码”? – piokuc

+1

它会继续执行,请显示您的所有代码 – jamylak

+0

我已经添加了整个代码 – Adham

回答

1

整个try块将尽快发生异常离开。 如果您想异常后继续进行,你需要捕获异常早期

Try: 
    some code here 
except TwythonError as e: 
    print e 

some more code here 
1
try: 
    some code here 
except TwythonError as e: 
    print e 
finally: 
    #continue 

记住,代码总是要经过最后部分,因此,你只能执行引发异常的代码,在try部分中,其余部分在finally部分中执行。