2010-08-19 3 views
3

Я создаю API, где URL-адрес отправляется на сервер. Я хочу получить имя пользователя и т. Д. Из URL. Я использую следующий код, чтобы сделать это:Правильный способ поймать KeyError в Django?

try: 
    username = request.REQUEST['username'] 
    message = request.REQUEST['message'] 
    time = request.REQUEST['time'] 

except KeyError: 
    ... 

Однако, бывают случаи, когда URL не имеет имя пользователя, сообщение, время и т.д. в нем. В этом случае возникает KeyError. Я хочу иметь возможность поймать это и узнать, какой параметр отсутствует, поэтому я могу выпустить код ответа об ошибке, который сообщает пользователю, какой параметр отсутствует. В области исключения есть ли способ определить, где код не прошел?

ответ

1

Неплохо. Используйте значение по умолчанию None и проверьте после.

try: 
    username = request.REQUEST.get('username', None) 
    ... 
except ...: 
    ... 
else: 
    if username is None: 
    ... 
1

не будет работать? Нет необходимости в исключениях

if 'username' in request.REQUEST: 
    username = request.REQUEST['username'] 
else: 
    #username not found 
+0

Как о объекте ориентирован? – User