java - 用子类中的已检查异常覆盖抛出未检查异常的超类方法
问题描述
我们可以用子类中的已检查异常覆盖抛出未检查异常的超类方法吗?
解决方案
你不能。
子类方法不能抛出throws
基超类方法的子句未涵盖的任何已检查异常。
换句话说,子类方法只有出现在throws
超类方法的子句中或者是出现在该子句中的异常的子类时,才能抛出已检查异常throws
。
这是有道理的,因为超类的用户只知道超类方法的契约,那么他们怎么知道他们必须捕获一些throws
在超类条款中没有提到的额外异常呢?他们不能也不应该知道覆盖该方法的所有子类(其中一些可能尚未编写)。
推荐阅读
- vba - 添加对使用带有编号的项目宏的正则表达式找到的数字或文本的交叉引用
- ios - ContainerViewController 中的 Item 是什么
- php - Prestashop 1.7 搜索引擎的修改,'-' '' 字符,
- java - Spring Boot 默认异常映射到标准 HTTP 状态码
- javascript - Sequelize,findOrCreate后获取id
- python - 数据框字典中列的总和
- java - JSplitPane 中如何动态改变组件
- makefile - Makefile:匹配任何东西的模式规则
- javascript - 带有缓冲区的 NodeJS 内存泄漏
- javascript - ES6中Class的导出方法