java异常

异常对象两个重要的方法:

  1. 获取异常简单的描述信息:
String msg = exception.getMessage();

获取简短的异常信息。如果new异常时有形参,则msg为形参。

  1. 打印异常追踪的堆栈信息:
exception.printStackTrace();

异常的堆栈信息采用了异步线程的方式。

异常对象使用方法

  1. 建议捕捉异常以后调用printStackTrace方法,不然实际发生异常时我们并不知道。
  2. 我们以后查看异常的追踪信息,我们应该怎么看,可以快速的调试程序呢?
    异常信息追踪信息,从上往下一行一行看。
    但是需要注意的是:SUN写的代码就不用看了(看包名就知道是不是SUN公司写的代码)。主要的问题是出现在自己编写的代码上。

finally用来做什么?

通常在finally语句块中完成资源的释放/关闭。

try和finally的执行顺序

如果try语句中有return,则会先执行try语句,再执行finally,最后执行return。

final、finally、finalize的区别

final是一个关键字,可用于修饰变量、方法、类。其修饰的变量只能赋值一次,修饰的方法不能被重写,修饰的类不能被继承。
finally用于try语句中,表示执行完try语句中一定会执行的语句块。
finalize是Object类的一个方法,由JVM的GC(垃圾回收)机制自动调用。

自定义异常

  1. 编写一个类继承Exception或者RuntimeException.
  2. 提供两个构造方法,一个无参数的,一个带有String参数的。
public class MyException extends Exception{//编译时异常
public MyException(){
}
public MyException( String s){
	super(s);
}
  1. 如果想自定义运行时异常,继承RuntimeException类即可。

运行时异常和编译时异常

  1. 除了RuntimeException,直接继承Exception类的为编译时异常,继承RuntimeException的为运行时异常。
  2. 编译时异常必须在代码中显式处理,如继续throws或者try捕获,而运行时异常可以不用在代码中处理。

继承类重写方法中的异常

子类重写方法不能比父类抛出更多(更宽泛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值