异常处理

一 正确关闭资源

  为何还要关闭资源?
 
    虽然Java中的垃圾回收机制可以回收堆内存中分配出来的内存,但对于程序中打开的物理资源,如数据库连接,网

络连接,磁盘文件等,垃圾回收机制是无能为力的,因此需要

人为地进行正确关闭。

   传统方式中的关闭资源,大多数是通过finally块中处理的,然而其中也需要有些注意的地方:

    使用finally块来关闭物理资源,保证关闭操作总是会被执行;

    关闭每个资源之前应该首先保证每个资源的引用变量不为null;

    为每个物理资源使用单独的try....catch块来关闭资源,保证关闭资源时引发的异常不会影响其他资源的关闭。

    使用Java7中增强的try语句关闭资源:

      基本语法:try(){   },对于圆括号中,通常完成的是对将要关闭资源的初始化,为了保证正确关闭资源,资源实

现类必须实现AutoCloseable或Closeable接口,这两个接口都

需要实现close()方法;另外,后者接口的close()方法声明抛出了IOException,因此它的实现类在close()方

法中只能声明抛出IOException或其子类,前者可以抛出任何异常。

  对于try块和finally块中的情况,见如下程序:



   运行结果:

 

 至于运行结果为何这样,留给思考


  当程序中需要处理多个异常时,应该遵循:

    先处理小异常,再处理大异常,否则编译器将提示编译错误。

二 对于继承得到的继承

  Java语言规定,子类重写父类的方法时,不能声明抛出比父类方法类型更多,范围更大的异常。


  最后强调点:

   Java中异常处理是专为处理程序中遇到的异常而设置的,切记不要将其用于诸如流程控制等其他地方,这是一个最应遵守的原则!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值