我正在使用java,我有一个有一些数字的文件。
1 2
3 4
我想读取此文件并将其存储在二维数组中。但也可能有字母或双打,在这种情况下我想在try / catch块中打印错误。下面是我的代码,当它找到一个字母或一个双字母时会产生错误。
1 2.3
a 4
while (sc.hasNextLine()) {
for (int y = 0; y < a.length; y++) {
for (int x = 0; x < a[y].length; x++) {
a[y][x] = sc.nextInt();
}
}
}
我想在try / catch块中检查的另一个错误是大小错误。以下是此输入的示例。你可以看到它不适合二维数组。在这种情况下,我想在try / catch块中打印错误
1 2 3
4 5
答案 0 :(得分:1)
您可以连接两个catch块。您需要使用source code来了解您正在检索它的值是否为int InputMismatchException以查看您是否尝试访问数组的错误大小:
while (sc.hasNextLine()) {
for (int y = 0; y < a.length; y++) {
for (int x = 0; x < a[y].length; x++) {
try{
a[y][x] = sc.nextInt();
}catch(InputMismatchException ex){
System.out.println("The format of the number it's not correct");
}catch(ArrayIndexOutOfBoundsException ex){
System.out.println("You are trying to access to a wrong index of the array");
}
}
}
}
答案 1 :(得分:0)
try / catch块用于异常处理。异常和错误是两个不同的事情。异常是程序员/用户不必要的错误结果。
易于异常的代码集写在try块中,异常处理是通过编写适当的catch子句在catch块内完成的。 当在try块中的任何语句中发生异常时,生成该异常的对象,并且执行控制将转向匹配异常的相应catch块,即匹配参数与生成的异常对象的匹配参数。
{{1}}
我编写了一般的catch块,它捕获Exception类型的对象,即异常层次结构中最顶层的类。在您的场景中,异常名称为NumberFormatException,ArrayIndexOutOfBound表示无效的数组大小。