谷歌应用引擎中的异常处理

时间:2010-03-29 11:03:44

标签: python google-app-engine exception-handling

我使用

提出异常
if UserId == '' and Password == '':
    raise Exception.MyException , "wrong userId or password" 

但我想在同一页上打印错误信息

class MyException(Exception):
    def __init__(self,msg):
        Exception.__init__(self,msg)

2 个答案:

答案 0 :(得分:1)

您没有使用Users API?假设您正在处理POST请求,请执行以下操作:

class LoginError(Exception):
    CODES = { 'mismatch': 'Wrong credentials', 'disabled': 'Account disabled' }
    ...

try:
    // your authentication code
    raise LoginError('mismatch')
    ...
    raise LoginError('disabled')
except LoginError as e:
    self.redirect(your_login_url + '?err=' + e)

# In login page you must not print arbitrary GET parameter directly
err_reason = LoginError.CODES[self.request.get('err')]`

(登录请求应该使用POST方法,因为它改变了服务器的状态,并且在POST之后重定向是一个好习惯,因此是重定向。)

答案 1 :(得分:0)

为什么提出异常而不是仅使用return语句停止函数执行并重定向到新页面