`

Java7新特性之增强的异常处理功能

阅读更多

 

此次变动增加了两处对异常处理机制的细微增强:

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

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

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

} catch (FirstException ex)
{
      logger.error(ex);
      throw ex;
  } catch(SecondException ex)
{
      logger.error(ex);
      throw ex; 
 }
 

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

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

} catch (FirstException | SecondException ex) {
      logger.error(ex);
      throw ex;
  }
 

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

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

try {
      // some code
  } catch (final Throwable ex) {
      // some more code
      throw ex;
  }  
 

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

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

 

分享到:
评论

相关推荐

    java7新特性功能表

    Java 7,全称为Java SE 7 (Java Platform, Standard Edition 7),是Java编程语言的一个重大更新,它在2011年发布,引入了一系列的新特性,旨在提高开发效率,增强程序性能,并且简化某些编程任务。让我们深入探讨...

    Java8 新特性

    Java8是Java编程语言的一次重大更新,引入了许多新的特性和功能,极大地提升了开发效率和代码的可读性。以下是一些主要的Java8新特性详解: 1. **Lambda表达式**:Lambda表达式是Java8中最显著的新特性,它为Java...

    java8新特性

    Java 8是Java编程语言的一个重大更新,引入了许多新的特性和功能,极大地提高了开发效率和代码的可读性。以下是一些主要的Java 8新特性详解: 1. **Lambda表达式**:这是Java 8最显著的新特性之一,它为Java引入了...

    尚硅谷Java8新特性下载

    Java 8的这些新特性不仅提高了开发效率,还增强了代码的可读性和维护性。通过学习和掌握这些特性,开发者可以编写出更加简洁、高效且健壮的Java应用程序。如果你对上述特性感兴趣,可以通过提供的百度云链接下载...

    删减版Java新特性(剖析Java8以来的新特性).pdf

    自 Java 8 发布后,Java 有了许多显著的新特性,极大地提升了开发效率和代码质量。以下是对 Java 8 及之后版本主要新特性的深入剖析: 1. **Lambda 表达式**: Java 8 引入了 Lambda 表达式,使得函数式编程成为...

    Java异常处理细节分析

    Java的异常处理机制是其强大的功能之一,通过合理的使用`try-catch-finally`结构,可以有效地管理程序运行过程中可能出现的异常情况。理解这些机制的工作原理对于编写健壮的Java应用程序至关重要。同时,注意在异常...

    Java 异常处理的 9 个最佳实践

    Java异常处理的9个最佳实践涵盖了开发者在进行Java编程时应当遵循的一系列规则和方法,以确保代码的健壮性和可维护性。异常处理是编程中的一个重要部分,它能够帮助我们更有效地管理和响应程序运行时的错误情况。 ...

    java编程中异常处理的优劣观

    3. **层次化处理**:Java支持多层catch块,可以按照优先级或异常类型进行捕获和处理,这样可以在不同层次上处理不同类型的异常,增强了代码的灵活性。 4. **异常传播**:未被捕获的异常会自动向上级调用者传播,...

    超实用的Java新特性 - 2020最新版.zip

    Java作为世界上最受欢迎的编程语言之一,其每个新版本都会带来一系列增强和改进,以提高开发者的效率和程序的性能。2020年的Java 11、12、13和14版本也不例外,这些更新引入了多个引人注目的新特性。下面,我们将...

    2018最新 Java9新特性详解视频

    14.新特性7:异常处理try结构的使用升级 15.新特性8:下划线命名标识符的限制 16.新特性9:String底层存储结构的变化 17.新特性10:创建只读集合 18.新特性11:增强的Stream API 19.新特性11:Optional提供的stream...

    JAVA7新特性介绍(官方公布)中文版[参照].pdf

    Java 7是Java平台标准版的一个重要更新,它引入了一系列的新特性和改进,旨在提高开发者的效率、增强程序性能以及扩展平台的可用性。以下是Java 7的一些关键新特性: 1. **Nimbus Look & Feel**: Java 7引入了...

    Java 8新特性终极指南

    Lambda表达式是Java 8最显著的特性之一,它允许以更简洁的方式处理函数式编程。Lambda表达式可以被理解为没有名字的方法,它可以作为参数传递,也可以存储在变量中。例如,下面的代码展示了如何使用Lambda来遍历...

    Java8-JDK8-新特性学习

    以下将详细讲解Java 8的一些核心新特性: 1. **lambda表达式**:这是Java 8最显著的特征之一。Lambda表达式允许开发者以简洁的方式定义匿名函数,使得函数式编程在Java中变得更加便捷。例如,可以使用`()->System....

    java1.7 特性实现

    Java 1.7,也被称为Java 7,是Java编程语言的一个重要版本,它引入了许多新的特性和改进,旨在提高开发效率、增强可读性和简化编程任务。在本篇文章中,我们将深入探讨Java 7的一些核心特性,并通过实际代码示例来...

    java进阶/JDK 7、8新特性

    总的来说,JDK 7和8的新特性显著增强了Java的生产力和代码质量,使得开发者能够更好地应对现代软件开发的挑战。通过学习和掌握这些特性,Java程序员可以编写出更加高效、易读和维护的代码。对于希望进一步提升Java...

    java和java8特性功能

    - **默认方法**:接口在Java8中新增了默认方法,允许在接口中定义带有实现的方法,增强了接口的功能,同时避免了接口升级时的破坏性变更。 - **Optional类**:`java.util.Optional`是一个容器类,代表一个值存在...

    JDK8新特性(pdf版)

    Optional是JDK8的新特性之一,用于解决空指针异常问题。例如: public static void main(String[] args) { String str = null; Optional<String> optional = Optional.ofNullable(str); if (optional.isPresent...

    java1.8 java1.8

    7. **默认方法**:在接口中添加默认方法是Java 8的另一个重要特性,允许在不破坏向后兼容性的情况下为已有的接口添加新方法。 8. ** Nashorn JavaScript引擎**:Java 8集成了Nashorn JavaScript引擎,允许在Java...

    某硅谷java9新特性源码

    Java 9是Java平台的重大更新,它引入了许多新特性,旨在提高开发人员的生产力和系统的性能。...每个文件(如4_代码)可能代表一个特定特性的示例,通过阅读和运行这些代码,你将更好地掌握Java 9的新功能。

Global site tag (gtag.js) - Google Analytics