Когда запускается #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 перед печатью, он пропускает печать и возвращается к выполнению основной функции.