Raises the exception even if it is being handled

How the exception even appears when it is being handled? Code itself sent as a screenshot so you can see the line numbers.

Traceback (most recent call last):
File “[redacted]/[app_name]/analytics/helper_functions.py”, line 12, in track
metric = AnalyticsMetric.objects.get(name=metric_name)
File “[redacted]/.venv/lib/python3.13/site-packages/django/db/models/manager.py”, line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File “[redacted]/.venv/lib/python3.13/site-packages/django/db/models/query.py”, line 649, in get
raise self.model.DoesNotExist(
“%s matching query does not exist.” % self.model._meta.object_name
)
analytics.models.AnalyticsMetric.DoesNotExist: AnalyticsMetric matching query does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “[redacted]/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py”, line 55, in inner
response = get_response(request)
File “[redacted]/.venv/lib/python3.13/site-packages/django/core/handlers/base.py”, line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “[redacted]/[app_name]/[app_name1]/views.py”, line 68, in [redacted]
track(‘test’)
~~~~~^^^^^^^^
File “[redacted]/[app_name]/analytics/helper_functions.py”, line 14, in track
metric = AnalyticsMetric.objects.create(name=metric_name)
File “[redacted]/.venv/lib/python3.13/site-packages/django/db/models/manager.py”, line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File “[redacted]/.venv/lib/python3.13/site-packages/django/db/models/query.py”, line 679, in create
obj.save(force_insert=True, using=self.db)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “[redacted]/[app_name]/analytics/models.py”, line 25, in save
old = klass.objects.get(pk=self.pk)
File “[redacted]/.venv/lib/python3.13/site-packages/django/db/models/manager.py”, line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File “[redacted]/.venv/lib/python3.13/site-packages/django/db/models/query.py”, line 649, in get
raise self.model.DoesNotExist(
“%s matching query does not exist.” % self.model._meta.object_name
)
analytics.models.AnalyticsMetric.DoesNotExist: AnalyticsMetric matching query does not exist.

Next time, include the entire traceback inside a code snippet and include code as a snippet instead of a screenshot.

Your code is handling the first DoesNotExist. When it goes into the except block, it’s running into another DoesNotExist inside AnalyticsMetric.objects.create in line 14. More specifically, it’s erroring on this line:

File “[redacted]/[app_name]/analytics/models.py”, line 25, in save
old = klass.objects.get(pk=self.pk)
1 Like