2010-03-18 14 views
19

Jak mogę ustawić Eclipse, aby zatrzymał się w punkcie, w którym wystąpił wyjątek.Jak skonfigurować uruchamianie Eclipse w linii? Wystąpił wyjątek?

Mam konfigurację punktu przerwania Eclipse, aby złamać wyjątek. W poniższym przykładzie kodu problem, który mam, polega na tym, że Eclipse próbuje otworzyć kod źródłowy Integer. Czy jest jakiś sposób, aby po prostu złamać debugera w punkcie pokazanym w moim przykładzie kodu? Jeśli zejdę ze śladu stosu, przejdę do tej linii, byłoby miło, gdyby można było to zrobić bez pojawienia się okna "Nie znaleziono źródła".

Można to zrobić w Visual Studio, więc doprowadza mnie to do szału, nie mogąc znaleźć sposobu na zrobienie tego w Eclipse.

package com.test; 

public class QuickTest 
{ 
    public static void main(String[] args) 
    { 
    try 
    { 
     test(); 
    } 
    catch(NumberFormatException e) 
    { 
     System.out.println(e.getMessage()); 
    } 
} 

    private static void test() 
    { 
    String str = "notAnumber"; 

    Integer.parseInt(str);//<----I want debugger to stop here 
    } 
} 

 

Odpowiedz

3
  1. nie można po prostu ustawić punkt przerwania na linii Integer.parseInt(str)?
  2. Jeśli wskażesz projekt Eclipse przy użyciu JDK zamiast JRE, powinien on pobrać kod źródłowy dla wszystkich klas platformy (Integer itp.).
+1

Próbuję uniknąć otwierania klasy Integer. Po prostu chcę, żeby złamał problem z moim kodem. Ustawienie punktu przerwania nie pomoże, ponieważ jest to prosty przykład. Prawdziwy kod ma setki klas, itd. – Crispy

+1

Prawdopodobnie chcesz powiedzieć "JDK" zamiast "JVM" (?) – Fortega

+0

@Fortega, tak, dzięki –

5

Preferencje -> Java -> Debug -> Krok Filtrowanie Wybierz pakiety, które chcesz odfiltrować podczas debugowania (java.*, sun.*, etc) Na debugowania upewnić wybrano mały krok filtrowania strzałkę.

To powinno wystarczyć.

+0

Fajnie! Zawsze chciałem wiedzieć, jak to zrobić! – charlie

+1

Nie wygląda na to, że działa, gdy punkt przerwania jest skonfigurowany tak, aby złamać wyjątek :( – Crispy

+0

Co powiesz na to, czy wciśniesz w tym momencie krok powrotu, krok do góry, czy kroplę do klatki? Nie wiesz, czy to zadziała, ale jest to strzał. –

2

Widok debugowania wyświetli cały stos bieżącego wykonania. Musisz wybrać linię, którą chcesz zobaczyć. To będzie taki sam jak miałeś jakiś punkt przerwania, można zobaczyć wszystkie zmienne itd

35

Nie jestem pewien, w jaki inny sposób się tam dostać, ale ja po prostu zrobić:

Window -> Show View -> Breakpoints 

I w tej karcie jest "J!" to pozwala ustawić punkty przerwania na wyjątki.

+0

Tak, właśnie tego używam, z wyjątkiem mojego przykładu, który próbuje otworzyć Kod źródłowy Integer Nie chcę, aby kod źródłowy Integer został otwarty, chcę tylko, aby debugger zatrzymał się na 'Integer.parseInt (str);' – Crispy

+2

Debugger zatrzyma się, gdy zostanie zgłoszony wyjątek (o co go prosiłeś) i zawsze otworzy edytor w wierszu źródłowym, który rzucił wyjątek - w tym przypadku w Integer.parseInt(). Pokazany jest również cały stos wywoławczy i można kliknąć odpowiedni poziom, aby spojrzeć na źródło na tym poziomie. – DJClayworth

+0

Możesz następnie użyć stosu wywołań, aby powrócić do własnego kodu, nie ma sposobu, aby magicznie zdecydować, który poziom stosu uważasz za interesujący. Powinieneś naprawdę przyjąć tę odpowiedź. – David

Powiązane problemy