📅  最后修改于: 2023-12-03 15:16:03.065000             🧑  作者: Mango
在 Java7 及更高版本中,可以使用单个 catch 块来捕获多个异常。这样可以更加方便地处理多种异常情况,使代码更加简洁易读。
使用单个 catch 块来捕获多个异常,语法如下:
try {
// 可能会抛出多种异常的代码
} catch (ExceptionType1 | ExceptionType2 | ... | ExceptionTypeN e) {
// 异常处理代码
}
在 catch 关键字后,用竖线(|)分隔多个异常类型,表示捕获这些异常类型中的任何一种异常。
下面是一个使用单个 catch 块捕获多个异常的示例:
try {
// 可能会抛出多种异常的代码
} catch (IOException | SQLException e) {
// 异常处理代码
}
在上述示例中,在 try 块中可能会抛出两种类型的异常,即 IOException 和 SQLException。如果出现任何一种异常,都会被 catch 块捕获并执行相应的异常处理代码。
多个异常类型必须是同一级别的异常类型,即它们必须直接或间接地继承自共同的父类或实现共同的接口。
不能捕获同一异常类型的多个实例,一个 catch 块只能捕获一种异常类型。
在使用单个 catch 块捕获多个异常时,不能使用异常参数的子类的特定方法和字段。因为 catch 块只知道它所捕获的异常类型,而不知道实际上是哪个异常实例被捕获了。
使用单个 catch 块捕获多个异常可以使代码更加简洁易读。但是需要注意多个异常类型必须是同一级别的异常类型,并且不能捕获同一异常类型的多个实例。