历经4年,Java7终于和大家见面。关于Java7的新特性,详见这里。
Java7增强了Java的异常处理机制,主要表现为三个方面:捕捉多种异常类型(multicatch);重新抛出(rethrow)异常;简化资源清理(try-with-resources)
捕捉多种异常类型
从Java7开始,你就可以在一个catch块中捕捉多种类型的异常了。增加multicatch的特性的主要是为了降低重复代码和较少过大范围的异常捕捉(例如这样的捕捉 catch(Exception e))。
假如你正开发这样一个应用程序,这个程序可以灵活地将数据复制到数据库或者文件中,清单1(CopyToDatabaseOrFile.java)模拟了这种程序, 展示了在catch模块中存在重复代码的现象:
// CopyToDatabaseOrFile.java
import java.io.IOException;
import java.sql.SQLException;
public class CopyToDatabaseOrFile {
public static void main(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
}
}
static void copy() throws IOException, SQLException {
if (Math.random() < 0.5)
throw new IOException("cannot copy to file");
else
throw new SQLException("cannot copy to database");
}
}
清单1: CopyToDatabaseOrFile.java
Java7克服了这种代码重复的问题。你只需在一个catch块中指定多个需要处理的异常,将这些异常按顺序排列,并用“|”分隔每个异常。如:
try{
copy();
}catch (IOException | SQLException ex){
System.out.println(ex.getMessage());
}
现在,当copy()方法抛出任何一种类型,都会在catch块中被捕捉。
当在catch中声明多种异常时,被声明的异常默认为final的,也就是说不能再修改异常的引用。如上例中,不能再将ex赋值给另外一个异常(如ex=new MyException())。
分享到:
相关推荐
本视频为java8新特性,百度云链接和密码,永久有效,失效联系我
Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 新特性 ---- 代码 Java 8 ...
2020年的Java 11、12、13和14版本也不例外,这些更新引入了多个引人注目的新特性。下面,我们将详细探讨这些版本中的关键变化。 首先,让我们从Java 11开始,这是长期支持(LTS)版本。其中最重要的新特性是HTTP...
java8新特性
第三个新特性是switch语句对String的支持。在Java 7之前,switch只能用于int、char、枚举类型,但在Java 7之后,可以直接对String进行switch操作,使得处理字符串相关的条件判断更加方便。例如: ```java String day...
《Java8新特性学习教程》-(Java8指南)带您玩转Java8!!!Java8 新功能教程本教程翻译整理自https://github.com/winterbe/java8-tutorial★★★如果本教程对您有帮助,星一下吧,您还可以访问 《Java8新特性指导...
本套《Java9新特性》视频涵盖oracle公司2017年9月公布的java 9 新特性的核心内容。 主要包含:模块化系统,REPL工具:jshell命令,多版本兼容jar包,语法的新变化:接口私有方法、异常处理、钻石操作符、String存储...
现有becompare3/4对于java8 新特性lamda表达式文件无法反编译进行数据比对,此插件可解决此问题。
Java 7,又称为Java SE 7 (Java Standard Edition 7),是Java的重要里程碑,它在2011年发布,带来了许多新特性和性能优化。以下是一些关键的Java 7特性: 1. **多语言支持**:Java 7引入了新的`try-with-resources`...
Java Development Kit (JDK) 7 是 Java 编程语言的一个重大更新,包含了多项新特性,旨在提升开发者的效率、程序的性能以及对现代计算环境的支持。以下是对这些特性的详细解析: 1. **JDK7新特性<一>概述** JDK7的...
Java 7和8引入了许多新...总结,Java 7和8的新特性极大地增强了Java平台的现代性和开发效率,特别是在资源管理、异常处理、并发编程以及函数式编程方面。通过使用这些新特性,开发者可以编写出更简洁、更高效的代码。
文件包含java8新特性,以ppt的形式详细说明了。包含为什么需要学习java8、一些特性的示例,实现方式。
总之,《英文版Java 7入门经典》是一本全面且深入的教程,适合初学者和有一定经验的开发者阅读,无论你是想初次接触Java,还是希望深入理解Java 7的新特性,这本书都会是你宝贵的参考资料。通过系统学习,你将能够...
7. **动态语言支持**:JDK 7引入了 invokedynamic 指令,这是Java虚拟机的四大基础操作之一,用于支持动态类型语言的实现,如Groovy和JRuby。 8. **异常链**:JDK 7允许在捕获异常时保留原始异常信息,形成异常链,...
Java 7的关键新特性包括: 1. **多路复用I/O(NIO.2)**:引入了新的`java.nio.file`包,提供了更丰富的文件操作API,支持文件路径操作、文件系统查询、文件观察服务等。 2. **try-with-resources语句**:这是对...
书中会深入解析这些流的使用,以及NIO(非阻塞I/O)和NIO.2的新特性。 4. **集合框架**:Java集合框架是组织和操作数据的核心工具,包括List、Set、Map等接口及其实现类。书中会详细阐述它们的使用方法和设计模式,...
在Java SE 7(标准版7)中,引入了一些显著的新特性,旨在提升开发效率和代码质量。首先,多catch语句块是一个重要的改变,允许开发者在一个catch语句中捕获多个异常类型,使代码更简洁。其次,加入了字符串inswitch...
《Java核心技术 第12版》是一本针对Java开发基础和高级特性的详尽教程,适合Java初学者和有经验的开发者。本版已更新至Java 17,涵盖了最新的语言特性。作者Cay S. Horstmann是美国圣何塞州立大学的计算机科学教授,...
Java编程语言以其强大的功能和广泛的应用领域而闻名,但同时也因其一些独特的特性和陷阱而让初学者感到困惑。本文将深入探讨Java中的表达式谜题、字符谜题、循环谜题以及异常谜题,帮助你解开这些编程难题,进一步...
《Java 7新特性实战指南》是一本深入探讨Java 7新特性的技术书籍,它旨在帮助开发者充分利用Java 7的最新功能,提高编程效率和代码质量。这本书详细阐述了Java 7在语言、API以及并发处理等方面的改进,旨在帮助...