繁体   English   中英

如何在java中使用try和catch块

[英]how to use try and catch block in java

我正在使用 java 并且我有一个包含一些数字的文件。

1 2

3 4

我想读取这个文件并将它存储在一个二维数组中。 但也可能有字母或双打,在这种情况下,我想在 try/catch 块中打印错误。 下面是我的代码,当它找到一个字母或双倍时会产生一个错误。

1 2.3

一个 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

您可以连接两个 catch 块。 您需要使用InputMismatchException来了解您正在检索的值是否为 int 和ArrayIndexOutOfBoundsException以查看您是否尝试访问错误大小的数组:

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");
           }

        }
    }
}

try/catch 块用于异常处理。异常和错误是两件不同的事情。异常是程序员/用户不需要的任何结果,而不是错误。

易发生异常的代码集写在 try 块中,异常的处理在 catch 块内通过编写适当的 catch 子句完成。 当在 try 块对象内的任何语句中发生异常时,将生成该异常的执行控制,并将执行控制指向匹配异常的相应 catch 块,即匹配参数与生成的异常对象的参数。

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(Exception e){
                             e.printStackTrace();
                        }
                    }
                }
            }

我已经编写了通用 catch 块,它可以捕获异常类型的对象,即异常层次结构中最顶层的类。在您的场景中,异常名称是 NumberFormatException 和 ArrayIndexOutOfBound 用于无效数组大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM