如何在java中使用try和catch块

时间:2015-09-04 19:03:02

标签: java try-catch

我正在使用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

2 个答案:

答案 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表示无效的数组大小。