8

Korzystając z debuggera Visual Studio 2010, jestem zaznajomiony z wykorzystaniem okna Call Stack, aby zobaczyć, z którego wywoływanej funkcji został wywołany.Jak wrócić do linii kodu, która rzuciła wyjątek w debugerze Visual Studio 2010?

Pracuję z niektórymi aplikacjami, które mają raczej duże bloki try. Przypuśćmy, że przerywam wykonywanie kodu w punkcie przerwania w bloku catch, jaki jest najprostszy sposób określenia, w której linii w bloku try wystąpił wyjątek?

Wiem, że "Śledzenie stosu" zawiera szczegóły, takie jak numer linii, ale czy istnieje łatwiejszy sposób, taki jak klawisz skrótu, aby powrócić do linii kodu, w której został zgłoszony wyjątek?

Aktualizacja: Chciałbym podkreślić, że nie chcę, aby przesunąć punkt wykonania z powrotem do bloku try; Po prostu chcę prostszego sposobu na poznanie, z której linii powstał wyjątek.

Odpowiedz

3

Rozwiązanie może być, aby VS przerwę na wszystkich wyjątkami:

Wybierz Exceptions w menu Debug i zaznacz pole „rzucony” związanej Common Language Runtime Exceptions.

Teraz VS powinien teraz zatrzymać się i zaznaczyć linię, w której jest zgłaszany wyjątek. Możesz normalnie, jak zwykle, ustawiać kontynuując, klikając przycisk odtwarzania lub F5.

Wadą tego jest to, że wszystkie wyjątki zostaną złapane w ten sam sposób, co może być denerwujące, jeśli masz ich dużo.

+0

Zobaczę, jak to działa. Po prostu nienawidzę tego, gdy duża funkcja rzuca wyjątek i muszę zagłębić się w ślad stosu, aby zobaczyć, skąd się wywodzi! –

+0

Przy okazji, a co z błędami JavaScript? Czy jest coś podobnego, którego mogę użyć do obsługi błędów JavaScript? Obiekt JavaScript "Błąd" jest traktowany podobnie do obiektu 'Exception' .net. –

+0

Wierzę, że istnieje ustawienie/pole wyboru dla JS w tym samym miejscu, ale nigdy tego nie testowałem. Powinien jednak być łatwy do wypróbowania! – Kjartan

12

Jeśli nie masz "DEBUG", "Wyjątki ...", a następnie wybierz "Opuszczony" w stosunku do "Wyjątki dla wspólnego środowiska językowego".

Exceptions

Potem, gdy kod napotka wyjątek zatrzyma się na linii z błędem.

+1

Nie miałem opcji "Wyjątki" w VS 2017, więc musiałem ją włączyć, wykonując czynności opisane tutaj: https://msdn.microsoft.com/en-us/library/d14azbfh(v=vs.110) .aspx. Lub po prostu naciśnij ALT + CTRL + E – PBG

Powiązane problemy