【问题标题】:jdb print caught exception messagejdb 打印捕获的异常消息
【发布时间】:2013-03-22 21:01:11
【问题描述】:

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

我已经用谷歌搜索并搜索并阅读了文档,但我不知道如何。

如果我有测试类:

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] 

【问题讨论】:

  • 为什么不直接使用现代 ide?​​span>
  • 我愿意,但在我使用的 IDE(NetBeans 和 Eclipse)中更改命令行参数总是一个问题。我的 alt-tab 到终端并执行它更容易。

标签: java jdb


【解决方案1】:

查看 JDB 的“catch”命令,例如“catch IllegalArgumentException”。根据 JDB docs,它会在抛出异常时导致调试器中断,以便您可以调查细节。 This 调试文档很好地解释了依赖“打印”语句的一些缺点,并且还引用了 JDB 的“捕获”功能。

【讨论】:

  • 唯一的问题是我根据错误 IllegalArgument、IllegalState、AssertionError 等抛出不同的异常。代码库并不完全小,我不记得我抛出的所有异常
猜你喜欢
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
相关资源
最近更新 更多