捕获Java 7中的多个异常

时间:2020-01-09 10:35:57  来源:igfitidea点击:

在Java 7中,可以在同一catch块中捕获多个不同的异常。这也称为多捕获。

在Java 7之前,我们需要编写如下代码:

try {

    // execute code that Jan throw 1 of the 3 exceptions below.

} catch(SQLException e) {
    logger.log(e);

} catch(IOException e) {
    logger.log(e);

} catch(Exception e) {
    logger.severe(e);
}

如我们所见,两个异常" SQLException"和" IOException"的处理方式相同,但是我们仍然必须为它们编写两个单独的" catch"块。

在Java 7中,我们可以使用multi catch语法捕获多个异常:

try {

    // execute code that Jan throw 1 of the 3 exceptions below.

} catch(SQLException | IOException e) {
    logger.log(e);

} catch(Exception e) {
    logger.severe(e);
}

请注意,第一个catch块中的两个异常类名称是如何用竖线字符|分隔的。异常类名称之间的管道字符是如何声明要由同一catch子句捕获的多个异常。