我在使用异常的地方有一个查询:
try:
sm = Something.objects.get(id=5)
except Something.DoesNotExist:
pass
在这里通过是做什么的?我的意思是,如果我的整个视图都依赖
sm
而不是sm
怎么办?我应该手动设置“ sm”吗?except Something.DoesNotExist:
sm = anything
我只是想知道如果找不到要查询的内容,该怎么做。如果它只是忽略了except之后的部分,然后继续下去,那又有什么意义,因为我的整体看法取决于
sm
谢谢
最佳答案
在上述上下文中,关键字pass
会忽略DoesNotExist
异常。如果您的程序依赖于代码中某个地方sm
的存在,则应将其设置为None
并在需要的地方检查其值。
try:
sm = Something.objects.get(id=5)
except Something.DoesNotExist:
sm = None
if sm:
...
另外,您可以在try / catch块的
else
部分中完成您的工作。仅当try
块中的代码未引发异常时才执行该命令。try:
sm = Something.objects.get(id=5)
except Something.DoesNotExist:
# do something here..
else:
print sm
...
关于python - python django异常处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28535523/