Правильный способ поймать KeyError в Django? - PullRequest
3 голосов
/ 19 августа 2010

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

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

 except KeyError:
    ...

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

Ответы [ 2 ]

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

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

if 'username' in request.REQUEST:
    username = request.REQUEST['username']
else:
    #username not found
1 голос
/ 19 августа 2010

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

try:
  username = request.REQUEST.get('username', None)
   ...
except ...:
   ...
else:
  if username is None:
     ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...