About Catching Exceptions

When using try...except, always define the exception type. Otherwise you might miss unexpected errors and can direct the logical flow incorrectly.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from django.core.exceptions import (
    ObjectDoesNotExist, MultipleObjectsReturned
)

try:
    rating = Post.objects.get(
        slug=slug, user=request.user,
    )
except ObjectDoesNotExist as e:
    print("Post not found.")
except MultipleObjectsReturned as e:
    print("Database integrity error.")

Tips and Tricks Programming Wisdom Django 5.x Django 4.2 Django 3.2 Django 2.2 Python 3