主要是为了满足多态调用。

子类和父类的关系是is-a。

子类是一个父类,凡是使用父类的地方,也可以用子类代替。如果子类比父类多抛出异常,就破坏了这一原则。

public class Parent {public void a() throws AException {}
}
public class Child extends Parent {public void a() throws AException, BException {}
}public class Test {public void main(String[] args) {Parent p = new Child(); // 多态try {p.a();//这里在调用者看不到BException,当然不会catchBException!这样一旦Child抛出BException,将无法处理。} catch(AException e) {doSomething();}}
}

通俗的说:(来自论坛 Mybeautiful的回复)

1。我要你帮忙买瓶酒,你说如果买不到的话,打个电话告诉我。所以我做好了接电话的准备
2。然而你让你儿子帮我买酒,没有买到,发了个QQ给我。我并没有收到通知,因为我不知道QQ为何物。

子类不能抛出新的异常相关推荐

  1. 子类重写方法不能抛出新的异常

    主要是为了满足多态调用. 子类和父类的关系是is-a. 子类是一个父类,凡是使用父类的地方,也可以用子类代替.如果子类比父类多抛出异常,就破坏了这一原则. public class Parent {p ...

  2. 抛出运行时异常的目的_「JAVA」运行时异常、编译时异常、自定义异常,通过案例实践转译和异常链...

    Java基础之异常处理机制 什么是异常 从事Java开发的小伙伴对于"异常"应该不陌生,因为每天都会遇到不少异常,或捕获,或抛出.那究竟什么是异常?异常即非正常的,不同于平常.一般 ...

  3. 父类没有异常,子类可以抛异常吗

    不能 这个是java约定的方法重写(overide)规则,人为规定的,没有为什么, 子类方法声明抛出的异常应比父类方法声明抛出的异常类更小或相等(甚至不抛出)

  4. java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...

    [情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...

  5. 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )

    文章目录 I 异常处理 II 字符串异常 III 异常对象 IV 抛出任意类型对象 V 自定义异常 VI 异常相关代码 I 异常处理 1. 异常处理 : 使用 " try{}catch(){ ...

  6. 应该手动抛出什么异常?RuntimeException?

    Java程序员应该手动抛出什么异常?不能抛出RuntimeException吧? 收藏帖子 回复 秦三行 结帖率 96.88% if(sectionCodeT!=null && !&q ...

  7. java 捕捉的异常抛出_Java异常抛出和捕获

    Java中把非正常情况分为两种,异常(Exception)和错误(Error). 异常.png Error:一般是指与虚拟机相关的问题(虚拟机错误.线程死锁等),这种错误无法回复或不可能捕获 Exce ...

  8. java 异常 不抛,java中不捕获或抛出的异常

    java中不捕获或抛出的异常 发布时间:2020-06-25 14:29:16 来源:亿速云 阅读:137 作者:Leah 这期内容当中小编将会给大家带来有关java中不捕获或抛出的异常,文章内容丰富 ...

  9. java 异常 不抛_java中的不抛出的异常是什么

    RuntimeException与其子类和错误(Error)不是必须要捕获或抛出. Java异常Throwable分为两类:Error和Exception,Error类是错误,程序本身不能处理的. E ...

最新文章

  1. 写文件 —— 将内容按照指定格式写入配置文件(fprintf()函数-》》本机的监听地址列表中port值)
  2. 入门demo---Mybatis学习笔记(三)
  3. 栈/队列/分块问卷调查反馈——Weak in the Middle,Cutting Plants,最小公倍数
  4. java记事本保存_JAVA记事本关于保存
  5. oracle rac ora 12547,oracle11g RAC 下DBCA建库失败:ORA-12547: TNS:lost contact
  6. jsp,mysql乱码情况1
  7. c语言中线程的特性,具有C 11多线程的特征库
  8. php二维数组根据某个字段排序的排序(商品按销量或其他字段排序)
  9. 使用Photoshop+960 Grid System模板进行网页设计
  10. linux shell 数字计算详解
  11. java servlet面试题_servlet面试题一般有哪些?servlet面试大全详解
  12. Linux 磁带机型号,请教一下,爱华的磁带机型号大全,里面的字母什么意思?
  13. IT战略规划项目方法论(德勤、埃森哲、IBM、凯捷)
  14. websocket与下位机通过netty方式通信传输行为信息
  15. Windows系统设置局域网共享(无密码+有密码)
  16. 分享一些可用的淘宝(1688)关于订单信息获取的相关接口(开放API收费)
  17. java 等于_java中的“等于”
  18. html+js+css 调用jquery 工人信息管理功能(增删改查)前端实现,以及调用实现鼠标拖尾粒子效果的js库
  19. 【IT-Windows】Windows命令
  20. 程序员再也不用抢月饼了~

热门文章

  1. 初识C语言:多组输入的用法
  2. nodejs京东接口分析系列-实现京东自动化功能 之 商品信息监控
  3. 微信小程序,横向布局,纵向布局
  4. css3禅意花园脚本_如何创建无脚本CSS3工具提示
  5. win10下面搜索框无法搜索应用的解决方案
  6. BCJC 59《论可计算数》P4(1)
  7. CNN Matlab例子RGB_MATLAB如何提取曲线原始数据
  8. C# Winform控件库分享,免费开源,支持中文!(附DLL及教程)
  9. stata统计分析及行业应用案例分析_描述性统计分析的应用——基于描述性统计分析识别优质股票...
  10. 多线程经典问题-----乘客做公交车问题解答3