java - try catch java 中的范围和 alpha 错误

标签 java exception

此方法将一个整数添加到数组中。我必须弄清楚如何对输入进行 try catch 来捕获负整数和字母之类的东西,但我不知道该怎么做。我该怎么做?

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 确实支持负数。如果你想要负数异常(exception),你必须自己生成它。您的代码只会从 Scanner 类中抛出 InputMismatchException ,如果扫描器中的下一个标记与整数的正则表达式不匹配,则会抛出该异常。字;在字符处。

下面是为您的方法抛出负数异常的示例

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 ...
}

关于java - try catch java 中的范围和 alpha 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762883/

相关文章:

c# - 指定的参数超出有效值范围。参数名称: size

java - mongoDB:java.lang.InknownClassChangeError:实现类

c# - 我应该处理/捕获这些异常吗?

java - 在 OnClick 方法外部传递 int 的值

java - 使用自定义过滤器过滤 Accumulo 返回的结果时出错

java - Spring Framework 2.X 已经 EOL 了吗?

c# - 捕获 block 选择

java - 如果页面为 404,则抛出异常

java - 将 SVG 转码为 PNG 并使用 JAVA 添加元数据

java - 计算java中的递归步骤