Обработка ошибок сервера Python - PullRequest
0 голосов
/ 24 июня 2011

Я работаю над API, где пользователь входит в домен, и мне нужно перенаправить на страницу входа в этот домен. Так что это работает только для доменов Google, и мне нужно обработать ошибку, созданную, когда пользователь входит в домен не из Google. Я работаю на Google App Engine. Я новичок в обработке ошибок dis.So любезно объяснить, как это работает вместе с решением

Ошибка, которую я получил,

// Ошибка: ошибка сервера

Сервер обнаружил ошибку и не смог выполнить ваш запрос .//

заранее спасибо

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Самым простым решением, вероятно, будет попытка проверить ввод пользователя перед его использованием. Простого регулярного выражения, которое проверяет последние части домена, введенного пользователем, может быть достаточно.

Если вы хотите поддерживать произвольные домены без суффикса google\.[a-z]+ или appspot.com, вам потребуется другой способ выяснить, соответствует ли сайт вашим требованиям или нет. К сожалению, заголовок «is-powered-by-google-or-has-a-google-like-login-page» отсутствует, поэтому вам, вероятно, придется посмотреть на контент и использовать некоторые эвристические методы, если страница, вероятно, будет такая страница или нет.

Тип ошибки сервера (500 внутренняя ошибка сервера), с которой вы сейчас сталкиваетесь, может много значить. Эта ошибка означает, что с вашим приложением или конфигурацией сервера что-то не так. Например, если вы развернете сценарий с синтаксической ошибкой, веб-сервер ответит «ошибка сервера», когда кто-то попытается получить к нему доступ. Также, если вы хотите разделить на 0 или попытаться получить доступ к несуществующему элементу, будет отображаться ошибка такого рода. Итак, ошибки сервера - это очень общее название ошибок программирования, которых следует избегать (и исправлять!).

0 голосов
/ 24 июня 2011

Трудно точно указать, что именно требует ваш случай, но способ отлова ошибок обычно работает так:

try:
    something_that_might_fail()
except ErrorClass:
    do_something_else()
...