【发布时间】:2010-09-29 09:36:46
【问题描述】:
此特定示例与 Python 中的 Django 相关,但应适用于任何支持异常的语言:
try:
object = ModelClass.objects.get(search=value)
except DoesNotExist:
pass
if object:
# do stuff
Django 模型类提供了一个简单的方法 get,它允许我从数据库中搜索 唯一一个 对象,如果它或多或少找到它会引发一个例外。如果可以使用另一种 filter 方法找到零个或多个,该方法返回一个列表:
objects = ModelClass.objects.filter(search=value)
if len(objects) == 1:
object = objects[0]
# do stuff
我是否过度厌恶异常? 对我来说,异常似乎有点浪费,我猜测,四分之一到二分之一的时间将是“异常”。我更喜欢在失败时返回 None 的函数。使用 Django 的 filter 方法并自己处理列表会更好吗?
【问题讨论】: