1

I want to retry my method if some Exception happens, something as follow, maybe do this with decorator is better?

class Processor(object):
    def __init__(self, username, password):
        self.username = username
        self.password = password
        self.user_info = UserInfo.objects.get(username=username)

    def get_inbox_page(self):
        try:
            # TODO process inbox page
            pass
        except NotLoginException:
            self.login()
            self.get_inbox_page()

    def get_downloaded_page(self):
            try:
            # TODO process downloaded page
            pass
        except NotLoginException:
            self.login()
            self.get_downloaded_page()

    def get_accept_msg_page(self):
        try:
            # TODO process accept message page
            pass
        except NotLoginException:
            self.login()
            self.get_accept_msg_page()

    # ... some other similar methods

    def login(self):
        session = self.login_proxy(self.username, self.password)
        self.user_info.session = session
        self.user_info.save()
Mohit Garg
  • 185
  • 2
  • 10
roger
  • 9,063
  • 20
  • 72
  • 119
  • Could you please clarify which method you'd like to be retried, and where it could fail with an exception? – farzad Nov 05 '15 at 09:20
  • @farzad `get_inbox_page` `get_downloaded_page ` `get_accept_msg_page ` retry itself when raise `NotLoginException ` – roger Nov 05 '15 at 09:22

0 Answers0