2013-03-22 3 views
1

У меня есть исключения, которые были выбраны в моем java-коде при возникновении ошибки. Затем я запускаю код с помощью jdb, поэтому, когда возникает исключение, я могу видеть состояние, в котором код находится и отлаживается. Для всех исключений, которые я бросаю, я добавляю полезное строковое сообщение. Однако, когда jdb ловит исключение, он не печатает эту строку вместе с ней. Как напечатать эту строку?jdb print caught exception message

У меня есть поиск в googled и поиск и чтение документации, но я не могу понять, как это сделать.

Если у меня есть тестовый класс:

public class Test{ 
    public static void main(String[] args){ 
     throw new IllegalArgumentException("How do I view this string through jdb?"); 
    } 
} 

И запустить его через JDB:

$ jdb Test 
Initializing jdb ... 
> run 
run Test 
Set uncaught java.lang.Throwable 
Set deferred uncaught java.lang.Throwable 
> 
VM Started: 
Exception occurred: java.lang.IllegalArgumentException (uncaught)"thread=main", Test.main(), line=3 bci=9 

main[1] 
+0

Почему бы просто не использовать современный идеал? –

+1

Я бы хотел, но всегда приходится менять параметры командной строки в используемых средах IDE (NetBeans и Eclipse). Это просто легче для меня на alt-tab на терминал и сделать это. – user2019811

ответ

1

Заканчивать команду JDB "поймать", например, "поймать IllegalArgumentException". В JDB docs это приведет к тому, что отладчик сломается, когда будет выбрано исключение, чтобы вы могли исследовать детали. This документ по отладке делает хорошую работу, объясняя, что некоторые из недостатков зависят от операторов «печати», а также ссылается на функциональность JDB «catch».

+0

Единственная проблема заключается в том, что я бросаю разные исключения в зависимости от ошибки IllegalArgument, IllegalState, AssertionError и т. Д. База кода не совсем маленькая, и я не помню всех исключений, которые я бросаю – user2019811

Смежные вопросы