我有一个程序,其中创建了一个ArrayList(列表),该列表填充了100个随机整数。用户输入数组的索引,然后程序显示相应的ArrayList值。如果用户输入的索引值超出范围,则会捕获其错误并向其显示一条消息。我已经设置了所需的一切,但每次输入超出范围的索引时,都不会捕获错误,Java会显示自己的错误消息。这是我的代码:
import java.util.*;
public class MyArrayIndexOutOfBounds
{
public static void main(String [] args)
{
ArrayList<Integer> list = new ArrayList<>();
int number;
for (int i= 0; i < 100; i++)
{
number = (int)(Math.random()*21);
list.add(number);
}
run(list);
}
public static void run(ArrayList<Integer> list)
{
System.out.println("Please enter an index number for the array: ");
Scanner input = new Scanner(System.in);
try{
int number = input.nextInt();
int result = list.get(number);
System.out.println(result);
}
catch(ArrayIndexOutOfBoundsException ex)
{
System.out.println("Out of Bounds");
}
}
}
答案 0 :(得分:2)
ArrayLists抛出IndexOutOfBoundsExceptions。尝试将ArrayIndexOutOfBoundsException ex
替换为IndexOutOfBoundsException ex
答案 1 :(得分:0)
只需更改例外类IndexOutOfBoundsException
而不是ArrayIndexOutOfBoundsException
有关http://docs.oracle.com/javase/7/docs/api/java/lang/ArrayIndexOutOfBoundsException.html
的更多详情答案 2 :(得分:0)
您需要在catch块中使用IndexOutOfBoundsException
。
使用此
catch(IndexOutOfBoundsException ex)
而不是
catch(ArrayIndexOutOfBoundsException ex)