2011-08-31 1 views
13

Więc używam NetBeans jako mojego IDE do rozwijania Androida.NetBeans i stop/break we wszystkich wyjątkach?

Jednakże, gdy otrzymuję wyjątek, Netbeans nie narusza wyjątku, tak jak tego oczekuję.

Mam zaznaczone pole "Zatrzymaj na niezatłoczonych wyjątkach", które można znaleźć w Opcje -> Java Debugger -> Zatrzymaj na niezatłoczonych wyjątkach, ale to nie pomaga.

Ponadto, gdzie mogę zobaczyć faktyczny komunikat o wyjątku? Nic nie widzę. W tej chwili nie mam pojęcia, gdzie i kiedy pojawia się wyjątek, tylko że się zdarza.

Przeczytałem niektóre na netbeans.org (buforowane, strona wydaje się być wyłączona) o błędzie w 6.9.1, który został naprawiony, ale nie wydaje się być naprawiony w wersji 7.0, którą mam.

Okno debugowania nie mówi nic użytecznego w ogóle, daje pewną postać avtrack stack, która jest bezcelowa, ponieważ nie określa żadnego z mojego własnego kodu.

przeszedłem z Eclipse IDE powodują, że do bani, NetBeans jest znacznie szczuplejsze, ale debugowania musi być ustalona jako użyteczne ...

+0

Dang Naprawdę potrzebuję odpowiedzi na to pytanie! – brenjt

+2

Na wypadek, gdyby ktoś przyszedł tutaj, aby złamać wyjątki w natywnym kodzie, w oknie konsoli debugowania wpisz 'catch throw', aby złamać dowolny zgłoszony wyjątek, i' catch catch', aby złamać każdy wychwycony wyjątek. Przeczytaj [dokumentację GDB] (http://www.gnu.org/software/gdb/documentation/) dla [tych poleceń] (http://sourceware.org/gdb/current/onlinedocs/gdb/Set-Catchpoints. html # Set-Catchpoints) do łamania określonych typów wyjątków. – doug65536

Odpowiedz

9

mam ten problem, kiedy ja też użyć NetBeans. Aby uzyskać komunikat o wyjątku, używam funkcji "try-and-catch". W instrukcji catch() wywołaj funkcję, która zawiera kod i umieść na nim punkt przerwania. Następnie, gdy wyjątek zostanie podany, punkt przerwania w oświadczeniu połowu zostanie wywołany i można odczytać informacje (komunikat o błędzie, stos itp.) Z punktu wyjątkowego.

try 
{ 
    // Doing something here 
} 
catch (Exception e1) 
{ 
    // This is called when an exception occurs 
    doSomething(); /// Put breakpoint here 
} 

UPDATE:

Nie jestem pewien, czy to będzie działać na Android, ale można spróbować wpisując "New Breakpoint". Wprowadzając nowy punkt przerwania w celu złamania wyjątku, musisz znać dokładną nazwę wyjątku pakietu/klasy . Na przykład, jeśli chcesz uchwycić wyjątek NullPointerException , przejdź do Debuguj >> Nowy punkt przerwania, aby utworzyć nowy punkt przerwania i wprowadź obiektu java.lang.NullPointerException do pola Nazwa klasy wyjątku w oknie dialogowym Właściwości punktu przerwania . Wybierz, czy chcesz włamać się na przechwycone, nieuczciwe czy obu, wyjątki, a uderzy w punkt przerwania, jeśli ten typ wyjątku kiedykolwiek wystąpi w klasie/projekcie.

+0

thx ... ale musi być jakiś sposób, aby zachował się jak w Visual Studio, tzn. Łamie się na linii wyjątku? – Ted

+1

Sprawdź aktualizację pod kątem innego możliwego rozwiązania. –

+0

Thx, ale to nie jest to, czego szukam niestety = (potrzebuję go do zerwania wszędzie tam, gdzie wystąpi wyjątek, bez ustawiania punktu przerwania.) W końcu przełączyłem się z powrotem na Eclipse ... = ( – Ted

0

Miałem takie zachowanie, gdy miałem mój plik źródłowy, który wygenerował wyjątek NIE w "pakiecie domyślnym". Kiedy przeniosłem wszystko do "pakietu domyślnego", zaczęło działać poprawnie i automatycznie zatrzymywało się na wyjątku.