加入收藏
|
设为首页
|
会员中心
|
我要投稿
|
RSS
吉诚首页
新闻资讯
下载中心
影视频道
网上商城
FLASH频道
图片频道
文章中心
分类信息
联系我们
关于我们
文化艺术
古玩收藏
藏品交流
您当前的位置:
首页
>
新闻资讯
>
IT技术
一道SCJP考题,要考SCJP的不能不看!
时间:2020-04-13 20:40:18 来源:JSP天空网 作者:未知
这道题目很有意义,我转贴到这儿.
(我从www.itpub.net转贴)
谁能告诉我这样的代码,编译为何不会报错?
class Base
{
public void aMethod() throws ClassNotFoundException
{
}
}
public class Derived extends Base
{
public void aMethod() throws RuntimeException
{
}
}
我这道题目是这样的:
父类Base的方法aMethod?出一个ClassNotFoundException异常
子类Derived重写aMethod方法并?出一个RuntimeException异常
如果按照Java的Exception理论,那么应该是:
子类Derived的aMethod方法要么不?异常,
要么就必须?出ClassNotFoundException异常或是ClassNotFoundException异常的子类才行.
而RuntimeException并不是ClassNotFoundException的子类.
它们没有任何的继承关系.
按照Java的Exception理论,应该编译不能通过.
但是现在可以编译通过,请问这是为什么?
runtimeexception是自动throws的,不需要declare(decalre了效果也不会有任何变化),即使声明了throws runtime exception,编译器也不会按通常的规则处理。所以上述代码的等效形式是:
class Base
{
public void aMethod() throws ClassNotFoundException
{
}
}
public class Derived extends Base
{
public void aMethod()
{
}
}
******答案*****
java中的异常可以分为3种类型:
1。从Exception类直接派生出来的异常类
2。运行时刻类(RuntimeException)
3。I/O异常类
你说的那个理论对于1,3成立
但是RuntimeException是没有必要去catch的.
来顶一下
返回首页
发表评论
共有
条评论
用户名:
密码:
验证码:
匿名发表
推荐资讯
军事警惕:美军基地合围
台气象部门:花莲地震是
普京乘坐图-160M战略
美国将迎来新一对中国
相关文章
无相关信息
栏目更新
栏目热门
站内搜索:
新闻
下载
图库
FLASH
电影
商品
文章
分类信息
高级搜索
吉诚首页
|
关于吉诚
|
服务条款
|
广告服务
|
联系我们
|
吉诚地图
|
免责声明
|
吉诚移动端WAP
Powered by
JichengCMS
7.5
© 吉诚信息科技主办 版权所有:宜兴市吉诚信息科技有限公司
网站排名
2012-2024 苏ICP备14007481-1号
JichengSoft Inc.
吉利胜黄金 诚信赢天下