Cecil Westerhof <ce...@decebal.nl> writes: > I am using Twython to post updates on Twitter. Lately there is now and > then a problem with my internet connection. I am using: > posted = twitter.update_status(status = message, > in_reply_to_status_id = message_id, > trim_user = True) > > What would be the best way to catch a connection error and try it (for > example) again maximum three times with a delay of one minute?
At the moment I solved it with the following: max_tries = 3 current_try = 1 while True: try: posted = twitter.update_status(status = message, in_reply_to_status_id = message_id, trim_user = True) return posted['id'] except TwythonError as e: print('Failed on try: {0}'.format(current_try)) if not 'Temporary failure in name resolution' in e.msg: raise if current_try == max_tries: raise current_try += 1 time.sleep(60) Is this a good way to do it, or can it be improved on? When it goes OK I just return from the function. If it goes wrong for something else as failure in the name resolution I re-raise the exception. When the maximum tries are done I re-raise the exception. Otherwise I wait a minute to try it again. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list