我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:金算盘心水论坛 > 抛出异常 >

java中覆盖方法带有抛出异常的情况

归档日期:08-04       文本归类:抛出异常      文章编辑:爱尚语录

  就是说父类方法抛的异常是Error,子类抛的是Exception,就是错的,是这样吗?是说子类抛出的异常必须从属于父类抛出的异常吗?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  为什么设计成这样呢? 举个现实的例子:我们现在有个动物类,它有个方法叫 eat() ,吃东西会抛出被毒死的异常,这是吃东西唯一可能出现的异常情况! 那么我们的子类在重写eat()方法时可以抛出 毒死异常或其子类,如误把老鼠药当食物被毒死异常”、吃有毒蘑菇被毒死异常“.....

  但是子类就是不能抛出毒死异常之外的 如”撑死异常“或者”噎死异常“,因为父类是个大前提,指所有动物,animal总共才抛出毒死异常这个类型,你子类就不能抛出我类型之外的状况!

  子类抛Exception,父类必须要有相应的处理,同时父类再抛出error就是对的。

  我认为子类抛出的异常在父类必须有相应的处理,否则必须从属于父类抛出的异常。

  在这个前提下 无论是种类还是数量,子类覆盖父类方法抛出异常不能比父类多(即小于等于)

  这个时候自然是种类上不能比父类多,因为Exception这儿可以看成是所有异常类型的集合(种类都比人家少 数量当然也一样)

  知道合伙人软件行家采纳数:1139获赞数:5227毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。向TA提问展开全部有异常抛出的代码一般放入 try...catch 以进行异常捕获,根据情况进行分析。还可以以多个catch进行捕获,进而可以已不同情况进行处理。

  如果已知异常类型,可以用对应的异常进行捕获,如果简单点话,直接用Exception进行。

本文链接:http://izytravel.com/paochuyichang/616.html