On Tue, Sep 7, 2010 at 9:38 PM, Phlip <phlip2...@gmail.com> wrote: > Everyone gets defensive about the design flaws in their own language. > But the django.db situation is not even a design flaw; just a > misinterpretation of the Samurai Principle. int('yo') shall throw an > exception, but a missing record could be the result you were looking > for, so it's not exceptional.
I consider it exceptional because it breaks the rule that Model.objects.get(...) returns an instance of Model. If it can also return None, then this needs to be checked for every time the method is called, because None does not implement the Model interface and will break if you try to use it like that. You're still doing exception handling; you're just doing it with an if instead of a try-except. I prefer to do exception handling in a block clearly marked as an exception handler. Out of curiosity, would you also regard the case where two matching records are found instead of one as not exceptional? After all, it could be the result you were looking for. What should QuerySet.get return in that case, if it doesn't raise an exception? -- http://mail.python.org/mailman/listinfo/python-list