Mam takie pytanie Django Orm:

try:
    specialization_object = Specialization.objects.get(name="My Test Specialization")
except Exception as ex:
    print(ex)

Gdy wystąpi wyjątek, drukuje "Specjalizacja dopasowania zapytania nie istnieje", ale nie drukuje numeru linii. Jak mogę śledzić numer linii, na którym wystąpił wyjątek lub błąd?

2
Taohidul Islam 5 czerwiec 2018, 11:58

3 odpowiedzi

Najlepsza odpowiedź

Właśnie teraz wymyśliłem proste rozwiązanie:

import traceback
try:
    specialization_object = Specialization.objects.get(name="My Test Specialization")
except Exception as ex:
    print(traceback.format_exc())
0
Taohidul Islam 5 czerwiec 2018, 09:42

Jeśli nie możesz z jakiegokolwiek powodu, użyj rejestrowania, istnieje standardowy pakiet Traceback i możesz zrobić coś w rodzaju:

traceback.print_exc(file=sys.stdout)
2
Lohmar ASHAR 5 czerwiec 2018, 09:36

Spróbuj tego:

import logging
logger = logging.getLogger(__name__)

try:
    specialization_object = Specialization.objects.get(name="My Test Specialization")
except Exception as ex:
    logger.info(ex, exc_info=True) # exc_info will add traceback

Dalsze czytanie zobacz Oto

3
sudonym 5 czerwiec 2018, 09:03