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

来源:互联网 发布:iphone蓝牙传输软件 编辑:程序博客网 时间:2024/06/10 00:35
异常在子父类覆盖中的体现:
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或该异常的子类或者不抛
2.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集
比如:父-- ABCDE    子 -- ABC或BDE等
3.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常

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


异常的好处:
1.将问题进行封装
2.将正常流程代码和问题处理代码相分离,方便于阅读。


异常的处理原则
1.处理方式有2种 try或者抛(throws)
2.调用到抛出异常的功能时,抛出几个就处理几个  一个try对于多个catch的情况
3.多个catch,父类的catch放在最下面
4.catch内,需要定义针对性的处理方式,不要简单的定义printStackTrace,或输出语句,也不要不写
当捕获到的异常,本功能处理不了时,可以继续在catch中抛出

try{throw new AException();}catch(AException e){throw e;}
如果该异常处理不了,但并不属于该功能出现的异常,可以将异常转换后,再抛出和该功能相关的异常

try{throw new AException();}catch(AException e){throw new BException();}
或者异常可以处理,但需要将异常产生的和本功能相关的问题提供出去,让调用者知道并处理,也可以将捕获异常
处理后,转换新的异常
try{throw new AException();}catch(AException e){//对AException处理throw new BException();}

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

0 0
原创粉丝点击