java学习易错点整理(四)

接着上篇的异常来说哈

对异常的处理

1.最常见的一种就是使用try-catch,将可能出现异常的用try语句块包围起来,一个try可以有多个catch与之对应,但注意当try中出现异常 时,它会在catch中找与该异常对应的捕获部分,找到后就停止,而不是一直找下去。使用try-catch的好处是你可以对异常进行处理,比如发 生异常后有特殊提示,发生异常后想要把该释放的资源释放,该关闭的流关掉等。

与try-catch常配套使用的还有finally代码块(异常的恢复机制),它位于所有的try-catch语句最后,它一般情况下都会执行,当然有特殊情况还是不会执行的,比如在finally之前调用了System.exit()方法,程序所在线程死亡(比如突然中断程序),finally代码块发生异常等。

2.使用throw关键字抛出异常,它抛出的是一个异常对象,如throw new NullPointerException(“发生空指针异常”)等。自定义的异常只能使用该种方法。 它也可以更改异常,就是说本来是抛出算术异常,你可以将其更改为抛出空指针异常(这里只是举个例子说明一下意思,可能有点不恰当。。)

3.使用throws关键字抛出异常,位于方法名之后,注意!!!如果某个方法使用了throws来抛出异常,那么在该方法外部的代码块想要调用它时,必须对该方法进行异常捕捉!!

4.自定义异常:

class 自定义异常类 extends 已有的异常类(常使用Exception){
	//具体代码
}

总结:异常的使用原则
①不要乱抛异常,自己能解决的一定要解决。
②不要忽略捕捉到的异常,否则只是抛出没什么实际意义,因为你是不想让其产生异常的,对吧。
③不要使用过于庞大的try-catch代码块。
④子类抛出的异常不能比父类更高级,如果父类方法中抛出了多个异常,那么子类覆盖这些方法的同时,也要抛出相同的异常或其异常的子类(类型不一样也会报错,当然RuntimeException及其子类不受该约束)

你可能感兴趣的:(java)