如何在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来查看原因。如果没有断点,则很难调试这行代码,因为它会执行多次,并且在发生错误时调试器不会停止。
答案 0 :(得分:1)
根据您的IDE,应该可以设置异常断点。在Eclipse中,它在断点视图中有一个小图标,看起来像一个带有感叹号的“J”。在Intellij中,您可以使用“查看断点”编辑断点,然后通过添加断点菜单添加异常断点。
答案 1 :(得分:0)
但是我检查过j + 1永远不会超过列表大小
它永远不会超过集合的大小 - 1! Java中的集合是基于0的,所以最后一个元素的索引将是list.size()-1
答案 2 :(得分:0)
您不需要在异常本身上使用断点,您可以将语句分解为不同的行以查看它发生的位置。或者只是将条件断点设置为条件为collection.size < j