当前位置:首页 > 开发 > 编程语言 > Java > 正文

java7 对异常处理的最新处理

发表于: 2014-08-10   作者:DavidIsOK   来源:转载   浏览:
摘要: ◆Multicatch:开发者现在能够在一个catch代码块中捕获多个异常类型; ◆Final Rethrow:它可以让开发者捕获一个异常类型及其子类型,并且无需向方法声明中增加抛出子句,就能重新将其抛出。 过去我们在捕获多个异常类型时,往往会使用以下类型的代码: }catch(FirstExceptionex){ logger.error(ex);

◆Multicatch:开发者现在能够在一个catch代码块中捕获多个异常类型;

◆Final Rethrow:它可以让开发者捕获一个异常类型及其子类型,并且无需向方法声明中增加抛出子句,就能重新将其抛出。

过去我们在捕获多个异常类型时,往往会使用以下类型的代码:

 
  1. }catch(FirstExceptionex){
  2. logger.error(ex);
  3. throwex;
  4. }catch(SecondExceptionex){
  5. logger.error(ex);
  6. throwex;
  7. }

但是以上代码除了冗长外没有什么优点。一个解决办法是找出这两个异常类型的共同子类型,只对其进行捕获并抛出。但是这种方法通常会捕获一些你并不需要的异常。

现在借助于新增的功能,开发者可以使用以下代码:

 
  1. }catch(FirstException|SecondExceptionex){
  2. logger.error(ex);
  3. throwex;
  4. }

这种代码看上去要简洁清晰的多。

第二个增强功能要复杂一些。假如开发者希望捕获所有异常,在进行必要的几个操作后,再将其抛出。就代码编写而言并不是一件难事,但是开发者必须在方法声明中增加一个抛出子句,来管理自己代码发出的新异常。而现在借助于Final Rethrow,开发者无需增加一个异常抛出子句就能完成此项任务:

 
  1. try{
  2. //somecode
  3. }catch(finalThrowableex){
  4. //somemorecode
  5. throwex;
  6. }

通过使用final关键字,开发者可以抛出所需的准确动态类型异常。这样如果一个IOException异常发生,那么IOException将被抛出。当然,开发者必须声明不被捕获的异常。如果开发者在try代码块(在//some more code部分)中没有捕获任何异常,抛出子句则与以前完全相同;反之如果捕获到某些异常,开发者则可以进行相应处理。

Java 7中的multi-catch是一个非常好的功能,但是final rethrow对程序员来说并不常用。

转自:http://developer.51cto.com/art/201005/198803.htm

java7 对异常处理的最新处理

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
try 块和异常处理 在设计各种软件系统的过程中,处理程序中的错误和其他反常行为是困难的部分之一。
Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler 映射、数据绑定以及目标
checked exception: 1. 除了RuntimeException的所有Exception的子类 2. 必须被捕获或者重新抛出 unc
异常处理 认识异常 首先看下面的代码: class User { private String uname; private int age; publ
异常处理 认识异常 首先看下面的代码: class User { private String uname; private int age; publ
try 块和异常处理 在设计各种软件系统的过程中,处理程序中的错误和其他反常行为是困难的部分之一。
1.why——在程序出现问题后,在异常机制的辅助下软件可以继续运行。 2异常处理方式——try……catch
异常 异常(Exception)是程序运行过程中发生的事件,该事件可以中断程序指令的正常执行流程。 Java异
声明: 原创作品, 转载时请注明文章来自 SAP师太 技术博客( 博/客/园www.cnblogs.co
什么是异常? 在java程序中,我们往往会遇到一些没有预料到的情况,或者超出了不可控的范围,例如数
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号