try-with-resources
1.定义:在JDK7出现的一种代替finally来关闭资源的异常处理方式
2.基本形式:
try(resources-specification){ //使用资源 }
解释:resources-specification声明初始化资源,可以在这里声明
多个对象,用分号隔开就好;当try语句结束时,资源会自动释放;
try-with-resources也可以不包含catch和finally语句;
局限:并非所有的资源都可以自动关闭,只有实现了java.lang.AutoCloseable
接口的那些资源才可以自动关闭;该接口是JDK7新增的,定义了close方法;
java.io.Closeable接口继承了java.lang.AutoCloseable接口,这两个接口
被所有的流类实现,包括FileInputStream和FileOutputStream。因此在使用
流时,可以使用try-with-resources语句
ep:
完整代码:
package com.ahuiby.test; class Dog implements AutoCloseable{ public Dog(){ System.out.println("The Dog is created."); }; public void init() throws Exception{ System.out.println("The Dog is inited."); throw new Exception(); } @Override public void close(){ System.out.println("The Dog is closed."); } } class Cat implements AutoCloseable{ public Cat(){ System.out.println("The Cat is created."); }; public void init() throws Exception{ System.out.println("The Cat is inited."); throw new Exception(); } @Override public void close(){ System.out.println("The Cat is closed."); } } public class Test { public static void main(String[] args) { // TODO Auto-generated method stub try(Dog d=new Dog(); Cat c=new Cat()){ d.init(); c.init(); }catch(Exception e){ System.out.println("deal this Exception."); }finally{ System.out.println("All is closed!"); } } }
运行结果:
The Dog is created. The Cat is created. The Dog is inited. The Cat is closed. The Dog is closed. deal this Exception. All is closed!
注意:
a)非流类必须实现AutoCloseable接口
b)try(初始化对象)
相关推荐
Java try-with-resource语法使用解析 在Java编程中,资源的关闭是一件非常重要的事情。否则,随着程序的不断运行,资源泄露将会累积成重大的生产事故。传统上,我们使用finally块来保证资源的关闭。但是,当我们...
- Java使用try-catch-finally结构处理异常,提供了一种统一的错误处理机制。 - 异常类层次结构,根类为`java.lang.Throwable`,常见的有`Exception`和`Error`。 4. **包(Package)**: - 为了管理类和接口,...
Java 使用 try-with-resources 实现自动关闭资源的方法 Java 中的自动资源管理是指在程序执行完毕后自动关闭资源,以免资源泄露或占用。 Java 1.7 之前,我们需要通过 finally 块来释放资源,这种方法有点繁琐。从 ...
Java 如何优雅地关闭资源 try-with-resource 及其异常抑制 Java 中关闭资源的重要性不能被夸张,...try-with-resource 语法和异常抑制机制是 Java 中关闭资源的重要机制,它们能够帮助我们写出更加简洁、可靠的代码。
Java try-with-resource 语法糖详解 Java try-with-resource 语法糖是 Java 1.7 中新增的一种语法糖,它主要用于简化资源的关闭操作。该语法糖可以自动关闭资源,无需开发者手动编写关闭代码,从而避免了资源泄露。...
try块中包含可能会产生异常的代码,当try块内的代码发生异常时,程序...另外,finally块是可选的,它会在try-catch块执行完毕后始终被执行,无论是否发生异常。finally块通常用于释放资源、关闭文件等必要的清理工作。
- JRE7:Java 7(JRE7)是Oracle在2011年发布的版本,引入了一些新特性,比如try-with-resources语句,用于自动关闭资源,增强了switch语句等。 - JRE8:Java 8(JRE8)于2014年发布,引入了lambda表达式、函数式...
Java使用try-catch-finally语句块来捕获和处理运行时错误,提供了良好的异常处理机制。 6. **集合框架**: 包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)和Map(如HashMap、TreeMap),用于...
7. **try-with-resources**:从Java 7开始,引入了try-with-resources语句,用于自动关闭实现了`AutoCloseable`接口的资源,避免资源泄露。 通过深入学习这个“java高端技术课程--Java异常处理详解”,开发者不仅...
- **异常处理机制**:Java通过try-catch-finally结构来捕获并处理异常。 - **自定义异常**:可以通过继承Exception类来创建自己的异常类,提高程序的健壮性和可维护性。 #### 6. 输入输出流 - **文件读写**:Java...
- 异常处理:try-catch-finally结构,自定义异常。 - 注释:单行、多行和文档注释的使用。 4. **第四章:面向对象【上】** - 类与对象:类的定义、对象的创建与销毁。 - 封装:数据隐藏和访问控制(public, ...
- 异常处理:学习如何使用try-catch-finally语句块进行异常捕获和处理。 - 内存管理:理解栈内存和堆内存的区别,以及垃圾回收机制。 - 集合框架:掌握ArrayList、LinkedList、HashMap、HashSet等容器的使用及其...
5. **try-with-resources**:一种新的资源管理方式,自动关闭在try语句块中打开的资源,如输入/输出流。 6. **改进的类型推断**:编译器能更好地推断局部变量和匿名类的类型,减少冗余的类型声明。 7. **二进制...
- `try-with-resource`: 自动管理资源的语法,适用于实现了`AutoCloseable`接口的对象,资源会在`try`块结束时自动关闭。 异常处理的最佳实践包括: - 只在不正常的情况下使用异常,避免滥用。 - 在`finally`块中...
在实际开发中,为了更好的错误处理和资源管理,通常会使用try-with-resources语句和Connection池。 MySQL Connector/J 5.1.26版本可能不支持最新的MySQL特性或安全性更新,因此,对于新的项目,建议使用更现代的...
Java中的异常处理机制包括try-catch-finally语句,用于捕获和处理程序执行过程中可能出现的错误情况,保证程序的稳定性和可靠性。 ### 输入输出流 Java提供了InputStream和OutputStream及其派生类,用于处理文件、...
- **异常处理机制**:Java提供try-catch-finally语句来捕获并处理异常。 - **自定义异常**:开发者可以根据需要定义自己的异常类型。 #### 3. 集合框架 - **集合概述**:Java集合框架是一组用于存储和操作对象的...
3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 ...
例如,使用`Connection.setAutoCommit(false)`开启手动事务,使用Apache Commons DBCP或C3P0等连接池库来提高性能,以及使用try-with-resources语句确保资源始终得到正确关闭。 总的来说,`mysql-connector-java-...