内部的GAE重定向尝试抛出异常

时间:2013-07-19 22:26:41

标签: python google-app-engine webapp2

一个简单的注销重定向处理程序。

    logging.info(users.create_logout_url(self.request.get('return_url')))
    try:
        return self.redirect(users.create_logout_url(self.request.get('return_url')), abort=True)
    except Exception as e:
        logging.error('Could not Logout user')
        logging.error(repr(e))
        #self.redirect('/')
        return
    #self.redirect('/')

除了< HTTPFound位于0xca3e60 302暂时移动>

如果我将重定向移到try try外面。

我很困惑。

2 个答案:

答案 0 :(得分:2)

从文档中引用:

  

除非abort为True,否则不会停止代码执行。通常的做法是在调用此方法时返回:

return redirect('/some-path')

有关详细信息,请查看webapp2.redirect

答案 1 :(得分:2)

使用abort = True调用会导致HTTPFound被提升,这是Exception。如果您担心create_logout_url错误,请将其与try ... except分开包装。