关于事件java.lang.IndexOutOfBoundsException的断点

时间:2013-10-30 12:04:04

标签: java debugging breakpoints indexoutofboundsexception

如何在evenet上添加断点java.lang.IndexOutOfBoundsException

System.out.println(this.getItem(j+1).getUniqueId() + ", Service time: " + this.getItem(j+1).getServiceTime() + ", Arrival time: " + this.getArrivalTimes().get(j+1));

问题是this.getItem(j+1)this.getArrivalTimes().get(j+1)失败。但是,我检查j+1永远不会超过列表大小。因此,我想添加一个beakpoint来查看原因。如果没有断点,则很难调试这行代码,因为它会执行多次,并且在发生错误时调试器不会停止。

3 个答案:

答案 0 :(得分:1)

根据您的IDE,应该可以设置异常断点。在Eclipse中,它在断点视图中有一个小图标,看起来像一个带有感叹号的“J”。在Intellij中,您可以使用“查看断点”编辑断点,然后通过添加断点菜单添加异常断点。

答案 1 :(得分:0)

  

但是我检查过j + 1永远不会超过列表大小

它永远不会超过集合的大小 - 1! Java中的集合是基于0的,所以最后一个元素的索引将是list.size()-1

答案 2 :(得分:0)

您不需要在异常本身上使用断点,您可以将语句分解为不同的行以查看它发生的位置。或者只是将条件断点设置为条件为collection.size < j

的行