Django - функция продолжает выполняться, несмотря на подфункцию 404 - PullRequest
0 голосов
/ 25 февраля 2019

Когда запускается #A

def add_particle_to_atom(particle_uid, atom_uid):

  node_data = find_node_by_uid(particle_uid) #A
  particle = node_data['queryset'] #B

Эта функция запускается, как я думал, вызовет исключение в REPL.

def find_node_by_uid(node_uid):
  # ...
  try:
    # thing will fail because i'm giving it garbage for a uid
  except: 
    print("|--- ERROR: there is no particle with that uid.")
    return HttpResponseNotFound("404")

Но консоль выдает ошибку, связанную с#B.

>>> add_particle_to_atom('wefjhwljefh',a)
|--- CHECK: if particle with uid 'wefjhwljefh' exists.
|--- ERROR: there is no particle with that uid.
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/layne/Desktop/AlchDB/alchemy/views.py", line 258, in add_particle_to_atom
    particle = node_data['queryset']
  File "/Users/layne/Desktop/venv_alchdb/alchdb/lib/python3.7/site-packages/django/http/response.py", line 145, in __getitem__
    return self._headers[header.lower()][1]
KeyError: 'queryset'

Почему это происходит, когда я сказал подфункции 404?И я знаю, что это терпит неудачу, потому что print работает.Я не хочу выходить, потому что я все еще хочу использовать REPL.

ОБНОВЛЕНИЕ: Если я помещаю возврат # A перед печатью, он пропускает печать и возвращается к выполнению основной функции.

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