Drukuj StackTrace w dzienniku Pyhton

Drukuj StackTrace w dzienniku Pyhton
Zbiór połączeń podejść w danym momencie jest reprezentowany w stosunku. Kiedy program podnosi wyjątek, Python generuje StackTrace, znany również jako Traceback lub Covertrace. W tej stacktrace jest wiele szczegółów, które można wykorzystać do zlokalizowania problemu. Pakiet rejestrowania Pythona zawiera kilka podstawowych funkcji i ma wiele poziomów rejestrowania, w tym „debugowanie”, „informacje”, „ostrzeżenie”, „błąd” i „krytyczny”.

Przykład 1: Drukuj StackTrace w Python, wykorzystując moduł Traceback

W tym przykładzie użyjemy prostego kawałka kodu, aby zademonstrować, jak zaimplementować moduł Traceback Python, aby wydrukować ślad stosu. Ten pakiet Trackback zawiera dobrze lubianą funkcję zbierania, przechowywania i wystawiania śladów stosu z języków komputerowych. Wiernie powiela operacje drukowania śladu scenariusza. Jeśli kiedykolwiek chcesz zobaczyć ślad stosu, jest to niezbędne.

Innymi słowy, ślad stosu wyświetla każdą operację, która pojawiła się przed tą, która spowodowała problem. Najważniejsze informacje są zawsze zgłaszane na ostatniej linii śladu stosu, czyli w momencie zidentyfikowania usterki. Wszystkie wywołania funkcji w wynikającym z tego błędu mogą być użyte do szybkiego zlokalizowania i rozwiązania problemu.

Zacznijmy od wdrożenia kodu poprzez importowanie biblioteki Python Traceback. Następnie w poniższym wierszu tworzymy tablicę i wymieniamy elementy z pewnymi wartościami. Wartości listy macierzy to „7”, „8”, „9” i „10”. Na liście tablic są cztery wartości. Ta lista tablic została zapisana w wcześniej zainicjowanej zmiennej „A”.

Następnie w następującej wierszu używamy terminu „spróbuj” i wartość „a = 6”. Używamy bloków próbnych w Pythonie, aby zarządzać wyjątkami. Takie podejście służy do napisania skryptu, który może zwiększyć błąd w nagłówku bloków. Wyjątki są zasadniczo błędami, podobnie jak błędy składniowe. W wyjątku programu obsługi wyjątków jest unikalnym aktem reagowania na wyjątek. Wracając do skryptu, używamy „oprócz” w następnym wierszu.

W bloku z wyjątkiem używamy „Traceback.print exc () ”, który jest skrót od„ Wyjątek drukowania ”. Używamy funkcji „print ()” w polu wyjątku, którym jest „koniec programu”, dzięki czemu ta instrukcja wydrukowała, gdy pojawi się wyjątek. Teraz, jeśli wyjątek wystąpi w polu Try, program natychmiast przenosi się do bloków oprócz. Jeśli wyjątek nie wystąpi, blok wyjątku jest całkowicie pomijany. Teraz, gdy zdarzy się wyjątek, w kodzie widzimy, że wartość „6” została wprowadzona do pola próbowania, nawet jeśli nie ma go na liście tablic. W rezultacie kod natychmiast przechodzi do pola wyjątku i drukuje instrukcję „Program kończy” na wyświetlaczu wyjściowym.

Różne wywołania funkcji, które składają się na śledzenie, są uporządkowane od najnowszych do najbliższych, od dołu do góry. Wszystkie te operacje są reprezentowane przez dwulanowe instrukcje. Każde połączenie zaczyna się od nazwy pliku, numeru sekwencji i nazwy modułu, z których wszystkie wskazują lokalizację kodu. Następnie wyświetla instrukcję drukowania wyjątków „Koniec programu”, ponieważ wartość „6” nie była na liście zadeklarowanej, co wynika z wyjścia „List Out Of Ofre”.

Przykład 2: Wydrukuj StackTrace w Python, wykorzystując rejestrowanie.Metoda wyjątku ()

W tym przykładzie zademonstrujemy, jak użyć „rejestrowania Pythona.Wyjątek () ”Metoda wyświetlania StackTrace. Pakiet rejestrowania w Python pozwala nam rejestrować błędy, a także rejestrować błędy i wyjątki. Moduły rejestrowania dają nam wybór modułów rejestrowania, w tym „debugowanie”, „Info”, „Ostrzeżenie”, „Błąd” i „Krytyczne”. Są to zasadniczo warstwy modułów rejestrowania, mówiąc prościej. Aby zarejestrować wyjątek z błędem w Pythonie, użyj „rejestrowania.Funkcja wyjątku () ”. Ta funkcja dodaje raport ze statusem błędu do tego rejestratora. Uważa się, że parametry są do debugowania. Informacje o wyjątku są dołączone do raportu rejestrowania. Jedyną lokalizacją, z której można wywołać tę procedurę.

Teraz spójrzmy na kod. Najpierw importujemy dwie biblioteki - z których pierwsza jest rejestrowanie, a drugą jest Traceback. Następnie używamy metody „BasicConfig” z „rejestrowaniem” i określamy poziom jako „rejestrowanie.Odpluskwić". Jedynym argumentem, który przyjmuje metodę „getLogger ()”, jest „nazwa”. Dlatego używamy go podczas korzystania z „rejestrowania.Funkcja getLogger ”. Jeśli podana jest nazwa, generowane jest odniesienie do instancji logger o tej nazwie; W przeciwnym razie korzeń jest zwracany. Do tego samego obiektu loggerów jest wiele operacji getLogger () o tej samej tożsamości.

Następnie używamy do wypróbowania i, jak wiemy w bloku próbnym, piszemy kod, który może podnieść wyjątek. W takim przypadku używamy „MyFunction ()”. Jeśli dana sytuacja nie pasuje, występuje wyjątek. Następnie kod natychmiast przeskakuje do bloku oprócz. Na tym blogu wyjątków używamy „rejestrowania.informacje ”. Wewnątrz piszemy wiadomość, którą chcemy wydrukować, co jest „wyjątkiem”. Wynika to z faktu, że jeśli nastąpi wyjątek, wystąpi błąd, wyświetla ten komunikat na ekranie. Ale jeśli błąd nie wystąpi, ignoruje cały komunikat wyjątkowy.

Ustawiamy również „ext info = true” z komunikatem. Cała StackTrace zostanie uwzględniona w rejestrowaniu, gdy informacje EXC są ustawione na true, podobnie jak to, co dzieje się z „logger.wyjątek()". Jedynym rozróżnieniem jest to, że możesz szybko przełączyć poziom dziennika z błędu na coś innego, po prostu wymieniając rejestrator.

Teraz, gdy w skrypcie wystąpił wyjątek, pierwszym wierszem wyjściowym jest komunikat „wyjątek”, a następnie poziom rejestrowania, który został użyty w skrypcie, który jest „Info.„Nazwa loggera pojawia się w tym przypadku jako root. Następnie pojawia się połączenie Traceback, wyświetlając nazwy modułu, wiersza i plików. Wreszcie, komunikat o błędzie „Myfunkction” nie jest zdefiniowany.

Porozmawiajmy o niektórych kodach, który wykorzystuje rejestrowanie. Metoda wyjątku () zaczyna się od importowania biblioteki do rejestrowania. Następnie dwie zmienne - „M” i „N” - są inicjowane i biorąc pod uwagę wartości odpowiednio „7” i „0”. Blok próba jest teraz używany w kolejnym etapie. W nim piszemy kod, który może spowodować wyjątek. Najpierw deklarujemy zmienną „O”. Następnie ustawiliśmy ten „M” podzielony przez „N”. Powoduje to wyjątek, ponieważ mianownik wynosi zero i nie możemy podzielić żadnej liczby przez zero, co oznacza, że ​​pojawią się błędy. W rezultacie kod przeskakuje do bloku oprócz bloku, w którym „rejestrowanie.Błąd ”jest używany. Błąd to poziom rejestrowania. Jeśli wystąpi wyjątek, drukujemy wiadomość lub oświadczenie, które mówi: „Wystąpił wyjątek” i ustawiamy „Exc info = true”. Jeśli nie ustawiamy tego na true, to tylko drukuje blok wyjątku i nie wyświetla informacji o śledzeniu.

Ponieważ wybraliśmy poziom „błędu” w naszym skrypcie, najpierw wyświetla root jako nazwę rejestratora, a następnie komunikat „wyjątek”. Następnie pokazano informacje o śledzeniu, które zawierały nazwę pliku, numer linii i moduł. Następny wiersz następnie pokazuje powiadomienie o błędach, ponieważ mianownik nie może wynosić zera. A ponieważ mianownik wynosi zero w tym kodzie, błąd jest określany jako błąd zero-Divisor.

Wniosek

W tym artykule przyjrzeliśmy się procesie drukowania StackTrace w dzienniku Python, a także jak korzystać z modułu Traceback, aby utworzyć ślad stosu. W pierwszym przykładzie zaimportowano bibliotekę Traceback, a próba i oprócz metod zastosowano. Kod został napisany w polu Try. Jeśli wystąpi wyjątek, szybko wskakuje do bloku wyjątków i wyświetla instrukcję wyjątku na ekranie. W drugim przykładzie wykorzystaliśmy rejestr, które podobne do pierwszego przykładu. Metoda wyjątku () używa poziomów „Info” i „Błąd” rejestrowania. Jeśli wystąpi wyjątek, wyświetla instrukcję wyjątku.