📜  Java捕获多个异常(1)

📅  最后修改于: 2023-12-03 15:16:35.614000             🧑  作者: Mango

Java捕获多个异常

在Java中,可以使用try-catch语句块来捕获程序运行中可能出现的异常。一个try块可以包含多个catch块,用于处理不同种类的异常。

多个catch块的语法

基本的try-catch块语法如下:

try {
    // 可能会抛出异常的代码
} catch (ExceptionType1 e1) {
    // 处理 ExceptionType1 异常的代码
} catch (ExceptionType2 e2) {
    // 处理 ExceptionType2 异常的代码
} catch (ExceptionType3 e3) {
    // 处理 ExceptionType3 异常的代码
} finally {
    // finally 代码块
}

在上面的代码块中,try块中的代码可能会抛出3种不同的异常,分别是ExceptionType1ExceptionType2ExceptionType3。如果抛出了某种异常,就会跳转到相应的catch块中进行处理。

最后,finally块中的代码会在所有catch块之后执行,无论是否发生了异常。

捕获多个异常示例

以下是一个示例代码,演示如何在一个try块中捕获多个异常:

public class CatchMultipleExceptionsExample {
    public static void main(String[] args) {
        try {
            int[] nums = {1, 2, 3};
            System.out.println(nums[4]); // 抛出 ArrayIndexOutOfBoundsException 异常
            String str = null;
            int len = str.length(); // 抛出 NullPointerException 异常
        } catch (ArrayIndexOutOfBoundsException e1) {
            System.out.println("数组下标越界:" + e1.getMessage());
        } catch (NullPointerException e2) {
            System.out.println("空指针异常:" + e2.getMessage());
        } catch (Exception e) { // 捕获所有其他异常
            System.out.println("其他异常:" + e.getMessage());
        } finally {
            System.out.println("程序执行完毕");
        }
    }
}

在上面的代码中,我们故意制造了两个不同的异常,分别是数组下标越界异常和空指针异常。我们使用3个catch块来捕获这两种异常,以及所有其他异常(使用Exception类)。

如果程序运行时,发生了数组下标越界异常,那么第一个catch块会被执行,打印出错误信息。如果发生了空指针异常,那么第二个catch块会被执行,打印出错误信息。如果发生了其他异常,那么第三个catch块会被执行,打印出错误信息。

最后,无论是否发生异常,finally块中的代码都会被执行,打印出"程序执行完毕"这个信息。

总结

Java中的try-catch语句块可以用于捕获程序运行中可能出现的异常。一个try块可以包含多个catch块,用于处理不同种类的异常。

在捕获多个异常时,应该首先捕获特定的异常,然后再捕获通用的异常(如Exception类)。最后,使用finally块来进行清理和释放资源。