java基础---异常

1.两种异常类型:受检查异常(checked)和不收检查异常(unchecked)。受检查异常需要要用throws在方法后构造函数上声明,不受检查异常不需要声明,就算方法和构造函数的执行可能或抛出这种异常。

2.Exception和Error:都是Throwable的子类。Exception用于程序可以捕获的异常,Error定义了不期望被用户程序捕获的异常。

3.throw和throws:

  • throws出现在方法函数头;而throw出现在函数体;
  • throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象;
  • 两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

4.finally代码块的作用:无论是否捕获异常,finally代码块都会被执行,主要在这里写释放资源的代码,如I/O缓冲区,数据库连接等。

5.异常处理完成后,Exception会在下一个垃圾回收周期被回收。

6.finally代码块和finalize()方法:finally代码块是无论是否抛出异常都会执行的代码块,finalize()方法是在所属对象被回收之前有JVM调用的方法。

7.编程习惯:

  • 在写程序时,对可能会出现异常的部分通常要用try{...}catch{...}去捕捉它并对它进行处理;
  • 用try{...}catch{...}捕捉了异常之后一定要对在catch{...}中对其进行处理,那怕是最简单的一句输出语句,或栈输入e.printStackTrace();
  • 如果是捕捉IO输入输出流中的异常,一定要在try{...}catch{...}后加finally{...}把输入输出流关闭;
  • 如果在函数体内用throw抛出了某种异常,最好要在函数名中加throws抛异常声明,然后交给调用它的上层函数进行处理。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值