У меня есть Джанго код, который напоминает это (это питон 2.7.1)запутанного поведение исключения питона
try:
a = some_model.objects.get(some_field='foo') #this could except if for some reason it doesn't exist
method_that_throws_exception() #it won't reach this if we get a DoesNotExist
except some_model.DoesNotExist:
#if it doesn't exist create it then try again
a = some_model.objects.create(....)
try:
method_that_throws_exception() #this time lets say another exception is raised by method
print 'this should not print right?'
except Exception as e:
logging.error("error msg here")
Проблема заключается в строке «это не должно печатать» по-прежнему печатаются. Я смущен этим. Я чувствую, что я, вероятно, не замечаю что-то очень простое, но может иметь какое-то туннельное видение на данный момент. Заранее спасибо.
Обновление: также, если я удаляю вложенную попытку, заблокируйте печать под вызовом метода, который выдает исключение, все еще печатает.
Почему вы используете 2x 'except'? – Aprillion
это была опечатка, извините. – mikec
Если объект существует, вы хотите, чтобы исключение, вызванное вашим методом, было необработанным? – Aprillion