黑马程序员技术交流社区

标题: 覆盖时的异常特点 [打印本页]

作者: zhoubinjian    时间: 2016-4-1 14:08
标题: 覆盖时的异常特点
finally代码块:
定义一定执行的代码。通常用于关闭资源

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

覆盖时的异常特点
异常在子父类覆盖中的体现:
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。
2.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类的子集。
3.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。

当捕获到的异常,本功能处理不了时,也可以继续在catch中抛出
try

{
        throw new AException();
}
catch(AException e)
{
       
        throw e;
}

如果该异常处理不了,但并不属于该功能出现的异常,可以将异常转换后,再抛出和该功能相关的异常。

或者异常可以处理,当需要将异常产生的功能和本功能相关的问题提供出去,让调用者知道,并处理,也可以将捕获异常处理后,转换新的异常。
如:try

{
        throw new AException();
}
catch(AException e)
{
        //对AException处理。
        throw new BException();
}


作者: user_lqb    时间: 2016-4-1 19:07
好帖子,收藏




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2