📅  最后修改于: 2023-12-03 15:16:35.614000             🧑  作者: Mango
在Java中,可以使用try-catch
语句块来捕获程序运行中可能出现的异常。一个try
块可以包含多个catch
块,用于处理不同种类的异常。
基本的try-catch
块语法如下:
try {
// 可能会抛出异常的代码
} catch (ExceptionType1 e1) {
// 处理 ExceptionType1 异常的代码
} catch (ExceptionType2 e2) {
// 处理 ExceptionType2 异常的代码
} catch (ExceptionType3 e3) {
// 处理 ExceptionType3 异常的代码
} finally {
// finally 代码块
}
在上面的代码块中,try
块中的代码可能会抛出3种不同的异常,分别是ExceptionType1
、ExceptionType2
和ExceptionType3
。如果抛出了某种异常,就会跳转到相应的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
块来进行清理和释放资源。