Breakpointy a błędy w kodzie

Zakończenie programu może wystąpić też nienaturalnie gdy będziemy mieli błąd w kodzie 😀 Wtedy, jeśli breakpoint znajduje się za błędem niestety program nie dotrze do tego breakpointa. Wykona się do momentu błędu i zostanie przerwany.

Przetestujmy to:

Umieść kolejny breakpoint na przedostatniej linii kodu:

print("Returning list")

Podstępnie, przed linią z ostatnim breakpoint, zepsuj inną linię. Na przykład taką:

cats.append(cat3)

Zepsucie kodu zrobimy w ten sposób, że wymusimy dodanie nieistniejącego kota. O tak:

cats.append(cat323)

Spróbuj przejść do nowo dodanego breakpointa na końcu programu korzystając oczywiście z trybu Debug i akcji Resume Program. Debugger zatrzyma się w zupełnie innym miejscu🤕.

Błąd w kodzie i debugger

Pierwsze co powinieneś zauważyć, to że zostaliśmy przeniesieni do miejsca w którym wystąpił błąd. To niezwykle użyteczne. Przy okazji znak błyskawicy informuje nas, że natrafiliśmy na coś co zatrzymuje kod ale nie jest to nasz brakepoint. Dodatkowo otrzymujemy ciekawe informacje w oknie Variables.

panel debug nastepny krok

W oknie Variables jesteśmy teraz w stanie zobaczyć co się udało poprawnie zrealizować (utworzone zmienne) i w której linii leży błąd:

Zaznaczyliśmy, na powyższym screenie, że od razu możemy przeczytać wartość błędu z listy __exception__. Po jej rozwinięciu (kliknij szarą strzałkę po lewej stronie nazwy __exception__) widzimy najbardziej interesującą nas część:

NameError("name 'cat323' is not defined")

Z którym się w pełni zgadzamy gdyż takiego kota nie zdefiniowaliśmy w programie 😁 W zakładce Console możesz zobaczyć pełny komunikat błędu.

Kolejne użycie Resume Program (F9) spowoduje wyjście z trybu debug i zakończenie wykonywania programu.

Do naszego nowego breakpointa już nie dotarliśmy ale znowu uzyskaliśmy masę cennej wiedzy💪 Poprawiamy program tak aby działał poprawnie i przechodzimy do kolejnego wyzwania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *