异常)总结


异常掌握几点:

1,  异常的思想:

将问题封装成对象的思想。

2,  异常的处理方式。

编译时异常:在函数上要声明,然后要么抛出,要么try。

什么时间try,什么时间抛throws?

异常你能处理的就try

异常你不能处理的就抛throws。

编译异常发生,只要没有处理,都要声明。

运行时异常:可以不用声明,可以直接抛出。

3,  抛出多异常,并多catch处理的原则

父类异常往后放。

4,  编译时检测异常和运行时异常

编译时异常:编译时期被检查到的异常,是可以预防修改的异常。

运行时异常:编译时期不被检查,运行时期发生的异常,一般这种异常都是调用者传递错误参数导致的,所以对于这种情况,应该让程序停止。

5,  自定义异常

自定义编译时异常:继承Exception或其子类。

自定义运行时异常:继承RuntimeException或其子类

可以调用父类构造方法指定异常抛出的信息:例如:

ZiException ( String  message)

{

        Super( message );

}

6,  Throws和throw的区别

Throws:后跟异常名称,声明异常。

Throw :后跟异常对象,抛出异常并结束函数

 

7,  异常的封装和转换

封装:将异常封装成一个对象,便于处理。

转换:将一些调用者不需要知道或者无法处理的异常在方法体中进行捕获、处理后,throw抛出且告知调用者一个他应该或者可以处理的异常。

8,  finally的作用,try,catch,finally的组合形式

finally的作用:捕获异常后,不管怎样,都必须执行finally中的代码。在结束代语句return前执行。

1,try{} catch(){}finally{} // 不需要声明

2,try{} catch(){} // 不需要声明

3,try{} finally{}  // 需要声明。  作用:不处理异常,关闭资源。

9,  异常在覆盖时的细节

1,父类方法中抛出了一个异常,那么覆盖子类方法中只能抛出父类抛出的异常或者其子异常

2,如果父类方法中抛出了多个异常,那么覆盖子类方法只能抛出父类异常的子类异常

3,父类方法中没有抛出异常,子类覆盖方法不能抛出异常。

Exception

       1,RuntimeException:其以及其子类都是运行时异常。

       2,Exception其他的子类都是编译时检测异常。

 

如果函数上表示了异常,调用者一定要进行处理,要么try,要么throws,否则编译失败。

 

检测异常:必须声明,并要给出处理方式。

运行时异常:不需给出处理方式,因为这种异常会导致算术失败,无法继续,只能让程序停止,让调用者修改代码。不需要声明。将其抛出即可。

函数内部出现运行时异常时,只需对函数内部处理即可(结束程序),不用在函数上将其抛出。

 

函数上抛出了几个异常,调用者就要处理几个异常。

 

getMessage():获取异常信息。

toString()    :获取异常的名称和异常的信息。

printStackTrace():打印信息,名称,位置到控制台。还可以存储到文件中(jvm的默认异常处理机制就是调用产生异常对象的printStackTrace方法)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值