黑马程序员___java基础8异常2

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------



对于异常分两种:

1编译时被检测的异常。

2编译时不被检测的异常。(运行时的异常,RuntimeException以及子类)

备注:return和 throw是语句结束的标识,如果满足条件后面的语句将不会被执行。

finally代码块:定义一定要执行的代码.通常用于关闭资源。

备注:catch是用于处理异常,如果没有catch就代表异常没有被处理过,如果该异常时检测时的异常,那么必须声明。

异常在子父类覆盖中的体现:

1子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类的异常,或者该异常的子类。

2如果父类方法抛出多个异常,那么子类在覆盖方法时,只能抛出父类异常的子集。

3如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。

如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。

注意:finally只有在一种情况下不会被执行,当执行到System.exit(0)(JVM结束)。

异常的好处:

1将问题进行封装。

2将正常流程代码和问题处理代码相分离,方便与阅读。

异常的处理原则:

1处理方式有两种,try或者throws.

2调用所抛出异常的功能时,抛出几个就处理几个,一个try对应多个catch.

3多个catch,父类的catch放到最下面。

4 catch内,需要定义针对性的处理方式,不要简单的定义PrintStackTrace或输出语句,也不要不写。当捕获到的异常,功能处理不了时,可以继续在catch中抛出。

如果该异常处理不了,但并不属于该功能出现的异常,可以将异常转换后,在抛出和该功能相关的异。如果异常可以处理,当需要将异常产生的和本功能相关的问题提供出去,让调用者知道,并处理,也可以将捕获异常处理后,转换新的异常。

异常的注意事项:

在子类覆盖时:

1子类抛出的异常必须是父类异常的子类或者子集

2如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。

备注:throw单独存在,下面不要定义语句,因为执行不到。(类似于continue,return,break等)。


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值