2013-03-22 75 views
1

发生错误时,我的java代码中抛出异常。然后我使用jdb运行代码,所以当发生异常时,我可以看到代码所在并调试的状态。对于我抛出的所有异常,我都会输入一个有用的字符串消息。但是,当jdb捕获到异常时,它不会随同它一起打印此字符串。我如何打印这个字符串?jdb print捕获异常消息

我已经Google搜索并阅读文档,但我无法弄清楚如何。

如果我有测试类:

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

为什么不只是使用现代IDE? – 2013-03-22 21:43:39

+1

我会,但在我使用的IDE(NetBeans和Eclipse)中更改命令行参数始终是个问题。对我来说,更容易让他们登录终端并执行操作。 – user2019811 2013-03-23 17:28:54

回答

1

退房加多宝 “捕获” 的命令,例如 “抓抛出:IllegalArgumentException”。根据JDB docs,当引发异常时,它会导致调试器中断,以便您可以探究细节。关于调试的This文档很好地解释了依赖于“打印”语句的一些缺点,并且还引用了JDB“catch”功能。

+0

唯一的问题是,我根据IllegalArgument,IllegalState,AssertionError等错误抛出了不同的异常。代码库并不是很小,我不记得我抛出的所有异常 – user2019811 2013-03-23 14:06:12

相关问题