欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

java mutilcatch_Java 7异常新特性之mutilcatch

发布时间:2025/3/20 java 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java mutilcatch_Java 7异常新特性之mutilcatch 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

历经4年,Java7终于和大家见面。关于Java7的新特性,详见这里。

Java7增强了Java的异常处理机制,主要表现为三个方面:捕捉多种异常类型(multicatch);重新抛出(rethrow)异常;简化资源清理(try-with-resources)

捕捉多种异常类型

从Java7开始,你就可以在一个catch块中捕捉多种类型的异常了。增加multicatch的特性的主要是为了降低重复代码和较少过大范围的异常捕捉(例如这样的捕捉 catch(Exception e))。

假如你正开发这样一个应用程序,这个程序可以灵活地将数据复制到数据库或者文件中,清单1(CopyToDatabaseOrFile.java)模拟了这种程序, 展示了在catch模块中存在重复代码的现象:

Java代码

// CopyToDatabaseOrFile.java

importjava.io.IOException;

importjava.sql.SQLException;

publicclassCopyToDatabaseOrFile {

publicstaticvoidmain(String[] args) {

try{

copy();

}catch(IOException ex) {

System.out.println(ex.getMessage());// additional handler code

}catch(SQLException ex) {

System.out.println(ex.getMessage());// additional handler code that's identical to the previous handler's // code

}

}

staticvoidcopy()throwsIOException, SQLException {

if(Math.random() <0.5)

thrownewIOException("cannot copy to file");

else

thrownewSQLException("cannot copy to database");

}

}

清单1: CopyToDatabaseOrFile.java

Java7克服了这种代码重复的问题。你只需在一个catch块中指定多个需要处理的异常,将这些异常按顺序排列,并用“|”分隔每个异常。如:

Java代码

try{

copy();

}catch(IOException | SQLException ex){

System.out.println(ex.getMessage());

}

现在,当copy()方法抛出任何一种类型,都会在catch块中被捕捉。

当在catch中声明多种异常时,被声明的异常默认为final的,也就是说不能再修改异常的引用。如上例中,不能再将ex赋值给另外一个异常(如ex=new MyException())。

【编辑推荐】

【责任编辑:金贺 TEL:(010)68476606】

点赞 0

总结

以上是生活随笔为你收集整理的java mutilcatch_Java 7异常新特性之mutilcatch的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。