在单个catch代码块中捕获多个异常

在Java7中,catch代码块得到了升级,用以在单个catch块中处理多个异常。

在Java7之前的代码:

 

catch (IOException ex) {
     logger.error(ex);
     throw new MyException(ex.getMessage());
catch (SQLException ex) {
     logger.error(ex);
     throw new MyException(ex.getMessage());
}catch (Exception ex) {
     logger.error(ex);
     throw new MyException(ex.getMessage());
}


在Java7中,我们可以用一个catch捕获所有这些异常

 

 

catch(IOException | SQLException | Exception ex){
     logger.error(ex);
     throw new MyException(ex.getMessage());
}


如果用一个catch块处理多个异常,可以用管道符将它们分开,在这种情况下异常参数变量ex是定义为final的,所以不能被修改。这一特性将生成更少的字节码并减少代码冗余。

 

最后欢迎大家访问我的个人网站:1024s​​​​​​​

 

你可能感兴趣的:(java)