java.lang.AutoCloseablejava.io.Closeable

public interface AutoCloseable {
void close() throws Exception;
} public interface Closeable extends AutoCloseable {
public void close() throws IOException;
}
  • java.lang.AutoCloseableJDK7添加的新接口
  • AutoCloseable接口对try-with-resource提供支持
  • java.io.CloseableJDK5添加的接口。从JDK7开始,Closeable扩展了AutoCloseable。因此,在JDK7中,所有实现了Closeable接口的类也都实现了AutoCloseable接口。
  • AutoCloseable 是一个更高抽象层次的接口,不一定用在 IO 上,所以它里面的 close 方法抛出的异常是 Exception,而非 IOException。
  • Closable 只用作 IO 流上,所以 close 方法抛出的异常是 IOException。

自定义AutoClosable 实现

public class TryWithResource implements AutoCloseable {

	@Override
public void close() throws Exception {
StackTraceElement stack[] = Thread.currentThread().getStackTrace();
for (StackTraceElement ste : stack) {
System.out
.println("called by " + ste.getClassName() + "." + ste.getMethodName() + " / " + ste.getFileName());
}
} public static void main(String[] args) {
try (TryWithResource twr = new TryWithResource()) {
System.out.println("use end...");
throw new Exception("xxx");
} catch (Exception e) {
System.out.println("close error...");
}
}
}

参考资料

java.lang.AutoCloseable的更多相关文章

  1. The type java.lang.AutoCloseable cannot be resolved. It is indirectly referenced from required .class files

    出现问题: The type java.lang.AutoCloseable cannot be resolved. It is indirectly referenced from required ...

  2. JDK框架简析--java.lang包中的基础类库、基础数据类型

    题记 JDK.Java Development Kit. 我们必须先认识到,JDK不过,不过一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含 ...

  3. Java-API-Package:java.lang

    ylbtech-Java-API-Package:java.lang 1.返回顶部 1. Package java.lang Provides classes that are fundamental ...

  4. java head space/ java.lang.OutOfMemoryError: Java heap space内存溢出

    上一篇JMX/JConsole调试本地还可以在centos6.5 服务器上进行监控有个问题端口只开放22那么设置的9998端口 你怎么都连不上怎么监控?(如果大神知道还望指点,个人见解) 线上项目出现 ...

  5. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法

    有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm ...

  6. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" ...

  7. Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V

    在学习CGlib动态代理时,遇到如下错误: Exception in thread "main" java.lang.NoSuchMethodError: org.objectwe ...

  8. Java—恶心的java.lang.NumberFormatException解决

    项目中要把十六进制字符串转化为十进制, 用到了到了Integer.parseInt(str1.trim(), 16):这个是不是后抛出java.lang.NumberFormatException异常 ...

  9. java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE

    Android发出HTTP请求时出现了这个错误: java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INST ...

随机推荐

  1. Daily Scrum (2015/11/5)

    这天晚上我们对爬虫进行了一些测试,发现仍然存在一些不小的BUG.现在我们的爬虫已经能完成基本的功能,焉域政同学也正在把他之前写的分类功能继续完善.在BUG的测试中,我们发现如果要求爬虫爬取特定的文件类 ...

  2. 2017-2018-20172311 暑期编程作业:APP

    2017-2018-20172311 暑期编程作业:实现一个简单倒计时APP 写在前面:暑假的时候就单纯的想要设计一个倒计时软件,然后就通过查阅资料等学了一些,包括实现倒计时功能及显示:背景音乐的添加 ...

  3. Leetcode题库——24.两两交换链表中的节点

    @author: ZZQ @software: PyCharm @file: swapPairs.py @time: 2018/10/20 19:49 说明:给定一个链表,两两交换其中相邻的节点,并返 ...

  4. 微信小程序公共组件的引用与控制

    思路: 1.在组件wxml文件里实现布局.数据绑定.事件绑定: 2.组件js文件里定义事件,并将文件所有内容作为一个对象export出去:3.在引用的文件引入组件(方式有两种,一个是用include引 ...

  5. lr几个常用的函数

    将字符串保存为参数 lr_save_string("string you want to save", "arg_name"); 将int型数字保存为参数 lr ...

  6. js学习1

    js基础1: js组成: ECMAScript :解释器 .翻译 提供语言的基本功能 几乎没有兼容型问题 dom :document object model 有一些兼容型问题 bom :brower ...

  7. [转帖]高通推出八核笔电处理器骁龙8cx 能超英特尔吗?

    高通推出八核笔电处理器骁龙8cx 能超英特尔吗? https://baijiahao.baidu.com/s?id=1619154699684981202&wfr=spider&for ...

  8. Go 自学笔记

    1. 最近花时间简单自学了一下go语言的语法..为了保证自己不是每次从0 开始 这次简单进行一下记录 保证 学习 效果. 2. 安装 直接下载go的包 进行安装 以及 暗转goland2018.3 进 ...

  9. [转]正确设置nginx/php-fpm/apache权限

    核心总结:php-fpm/apache 进程所使用的用户,不能是网站文件所有者. 凡是违背这个原则,则不符合最小权限原则. 根据生产环境不断反馈,发现不断有 php网站被挂木马,绝大部分原因是因为权限 ...

  10. PHP qq第三方登录,install时,报Not Found

    最近在学习qq的第三方登录,先在慕课网中观看了相关视频,懂了原理. 然后进行操作时,在下载好SDK后,在../install/install.html中,配置了相关的openid,oppkey,cal ...