4

我有这个功能:

public static FradId readFradId(DataInput pIn) throws IOException {
    Integer lMainId = Integer.valueOf(pIn.readInt());
    Integer lReferenceId = Integer.valueOf(pIn.readInt());
    String lShortname = pIn.readUTF();
    return new FradId(lMainId,lReferenceId,lShortname);
  }

我在这一行有一个断点:

String lShortname = pIn.readUTF();

我的问题是在某些情况下该函数readUTF会抛出一个RuntimeException. 该应用程序执行该功能超过 100 次,因此我很难找到问题所在。

我的问题:有没有办法用断点条件捕获该异常?我已经使用简单的布尔条件使用了该条件,但是当抛出异常时我不知道如何在该行中停止。

提前谢谢

斯特凡

4

3 回答 3

8

是的,有一个名为“异常断点”的选项
打开断点视图,单击j!选项并添加所需的异常

在此处输入图像描述

于 2013-04-02T07:35:41.073 回答
2

我认为你需要Java 异常断点

在您的 Eclipse 中,从运行菜单中打开“添加 Java 异常断点... ”。您可以选择需要为其设置断点的异常。

Run -> Add Java Exception Breakpoint...
于 2013-04-02T07:36:58.463 回答
1

你尝试过类似的东西吗?

public static FradId readFradId(DataInput pIn) throws IOException {
    Integer lMainId = Integer.valueOf(pIn.readInt());
    Integer lReferenceId = Integer.valueOf(pIn.readInt());
    try{
        String lShortname = pIn.readUTF();
    }catch(Exception e){
       //need a breakpoint here.
    }
    return new FradId(lMainId,lReferenceId,lShortname);
}
于 2013-04-02T07:35:16.567 回答