IndexOutOfBoundsException 没有被抛出 JFrame
Posted
技术标签:
【中文标题】IndexOutOfBoundsException 没有被抛出 JFrame【英文标题】:IndexOutOfBoundsException not being thrown JFrame 【发布时间】:2018-07-31 13:59:30 【问题描述】:我的代码增加了arraylist.get(index)
中的索引,当我到达列表末尾时,它被用作下一个按钮,它应该抛出IndexOutOFBoundsException
并在文本框中显示一条消息。问题是,如果我不断增加异常不会被捕获并且它会不断重启arraylist
,就像它走到尽头然后从头开始一样。
搜索索引在按钮处理程序之外初始化为 0
try
setResidentialFields(results,searchindex);
catch(ArrayIndexOutOfBoundsException e)
jTextField17.setText("NO MORE PROPERTIES");
searchindex++; //increment for next element in current search
这是setResidentialFields
方法中的一行
jTextField17.setText(String.valueOf(r.get(index).getTax())); //tax
要回复第一个答案,这就是我更改代码的方式
searchindex++;
try
jButton1.doClick();
catch(IndexOutOfBoundsException e)
jTextField7.setText("No more properties to display");
还是不行
【问题讨论】:
我想补充一点,当我在 setResidentialFields(results,3343); 行中手动输入超出范围的值时程序崩溃但出现异常但不是当我在 buttonclick 上增加变量时 你确定你捕捉到了正确的异常吗? docs.oracle.com/javase/8/docs/api/java/util/… 说IndexOutOfBoundsException
你确定setResidentialFields
正在抛出 ArrayIndexOutOfBoundsException 吗?
当我用 333 替换 'searchindex' 时它会抛出 IndexOutOfBoundsException,但当 searchindex 变量超出范围时不会在示例中我尝试 arrayindexoutofbounds 只是为了调试
我也尝试过 IndexOutOfBoundsException。不起作用,它只是在到达结束后不断重新启动显示从 0 开始的元素的数组列表
【参考方案1】:
我认为您的 indexToSearch
没有在正确的位置增加,或您永远打破循环(无论是否找到该属性)。下面是一个例子:
public class Answer
public static void main(String[] args)
int[] arr = 1, 2, 3, 4, 5;
int indexToSearch = 0;
int propertyToFind = 7;
while (true)
try
if (arr[indexToSearch] == propertyToFind)
System.out.println("found at index " + indexToSearch);
break;
catch (ArrayIndexOutOfBoundsException e)
System.out.println("property " + propertyToFind + " not found");
break;
indexToSearch++;
【讨论】:
编辑了我的代码,我在尝试之前递增,所以我认为它仍然有效 我不这么认为 - 您应该在当前搜索之后增加索引。请注意我写的代码只是一个简化的例子。尝试理解何时按下(或单击)按钮的逻辑以上是关于IndexOutOfBoundsException 没有被抛出 JFrame的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.IndexOutOfBoundsException:源不适合目标
ListView IndexOutOfBoundsException
IndexOutOfBoundsException 没有被抛出 JFrame
在索引处添加到 ArrayList 时出现 IndexOutOfBoundsException
RecyclerView:检测到 IndexOutOfBoundsException 不一致。无效的项目位置
ArrayIndexOutOfBoundsException 和 IndexOutOfBoundsException 之间的区别?