A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张冬冬 黑马帝   /  2011-11-1 21:28  /  2017 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果父类方法中抛出多个异常时,子类抛出异常只能是父类抛出异常的子集,子类抛出的异常不能比父类抛出更多的异常.
子类如果使用try()catch{}捕获异常时,可以抛出父类没有的异常.而throws时,就做不到这一点.

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
第一句话是正确的,子类重写方法抛出异常类型不能比父类被重写方法抛出异常更广.
但这是在编译时期,不适用于运行时异常.因为运行时异常是在代码运行的时候抛出的,所以这种异常就不能确定了。
重写方法可以抛出与父类被重写方法相同的异常,或者不抛出任何异常;
编译时异常“可缩小”,运行时异常“可扩大”(即可抛出多个新的运行时异常)

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
java虚拟机的异常和程序的异常是不同的
回复 使用道具 举报
throws Exception   意思是此处不做异常处理,抛给调用它的函数。
try catch               是处理异常的。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
都看晕了呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马