尝试在java中捕获范围和alpha错误

时间:2014-02-13 18:45:13

标签: java exception-handling

此方法向数组添加整数。我必须弄清楚如何尝试捕获输入以捕获负整数和字母之类的东西,我无法弄清楚如何做到这一点。我该怎么做?

private static int[] addInt (int[] ara, Scanner kb) {
   int[] newAra = new int[ara.length + 1];
   for(int i = 0; i < ara.length; i++) {
      newAra[i] = ara[i];
      }
   System.out.println("Enter new integer:");
   newAra[newAra.length-1] = kb.nextInt();
   selectionSort(newAra);
   return newAra;
   }

1 个答案:

答案 0 :(得分:3)

int确实支持负数。如果您想要对负数进行例外处理,则必须自己生成。你的代码只会从InputMismatchException类中抛出一个Scanner,如果扫描器中的下一个标记与整数的正则表达式不匹配,那么它将被抛出;在角色。

以下是为方法

引发负数例外的示例
int value = kb.nextInt();
if (value < 0) throw new IllegalArgumentException();
else newAra[newAra.length-1] = kb.nextInt();

并在您的代码中

try {
    my_int_array = addInt(my_int_array, scanner);
}
catch (InputMismatchException ime) {
     // tell that it's not a digit - number
}
catch (IllegalArgumentException iae) {
     // tell that it's a negative input
}
catch (Exception e) {
     // to catch all other exceptions from the Scanner class like IllegalStateException ...
}