Обработка исключений в Google App Engine - PullRequest
1 голос
/ 29 марта 2010

я поднимаю исключение, используя

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

но я хочу напечатать сообщение об ошибке на той же странице

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

Ответы [ 2 ]

1 голос
/ 29 марта 2010

Вы не используете Пользовательский 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, таким образом, перенаправление.)

0 голосов
/ 29 марта 2010

Зачем вызывать исключение вместо того, чтобы просто останавливать выполнение функции и перенаправлять на новую страницу с помощью оператора возврата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...