2012-04-30 24 views
8

Otrzymuję wyjątki wyrzucane skądś, ale wszystko, co otrzymuję z kompilatora, to "Pierwsza przypadek wyjątek typu" System.ArgumentOutOfRangeException "wystąpił w mscorlib.dll". Jest to dla mnie bezużyteczne, ponieważ nie jest to mój kod (jestem pewien, że jest to domyślna biblioteka). Chciałbym zobaczyć ślad stosu lub coś takiego, więc wiem, gdzie w moim kodzie wszystko poszło nie tak. Jest to dość duży kod źródłowy (z których wiele nie jest mój), i jest wiele wielowątkowych i innych rzeczy, więc prawie nie da się próbować przejść przez kod bez jakiegoś pojęcia, od czego zacząć. Czy istnieje jakieś ustawienie, które sprawiłoby, że WSZYSTKIE wyjątki spowodowałyby przerwę, tak żebym mógł zobaczyć stos wywołań, kiedy one wystąpią, a nie tylko ich cichy błąd z całkowicie bezużytecznym komunikatem o błędzie na wyjściu?Uzyskaj numer wiersza wyjątku pierwszej szansy

+0

Możesz zobaczyć stos, gdy wyjątek jest zgłaszany w trybie debugowania. – SimpleVar

+6

Jeśli jesteś w visual studio, spróbuj 'Debug Menu> Exceptions' i sprawdź wszystkie wyjątki, które chcesz włamać. – gcochard

+0

@Darrel Naprawdę powinieneś zaakceptować odpowiedzi na swoje pytania, nawet jeśli sam odpowiadasz. Ludzie będą bardziej chętni do pomocy w ten sposób. –

Odpowiedz

16

Masz kilka opcji. Po pierwsze, jak Greg, można spowodować VS złamać gdy wystąpi wyjątek:

enter image description here

Upewnij te są zaznaczone, a następnie kliknij przycisk OK:

enter image description here

To spowoduje Visual Studio łamać wszędzie tam, gdzie występuje wyjątek.

Innym podejściem jest złapać wyjątek i albo napisać tylko ślad stosu lub napisać wyjątek (przy użyciu toString()) do okna wyjściowego:

enter image description here

Następnie sprawdzić okno wyjściowe:

enter image description here

Powiązane problemy