此方法将整数添加到数组。我必须弄清楚如何尝试捕获输入以捕获负整数和类似字母的东西,而我不知道如何做到这一点。我该怎么办?
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;
}
最佳答案
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 ...
}