帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
一道SCJP考题,要考SCJP的不能不看!
作者:未知 发布时间:2005-05-12 来源: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的. 
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·关于数据库连接的一点浅见  (2005-03-12)
 ·对数据库连接问题的一点总结  (2005-03-12)
 ·使用ASP组件的一点经验  (2005-03-12)
 ·一个颇有用途的ISAPIFILTER(使您  (2005-03-12)
 ·关于4005错误谈我的一点经验  (2005-03-12)
 ·一个颇有用途的ISAPIFILTER(使您  (2005-03-12)
 ·关于INDEX SERVER+ASP建立查询引  (2005-03-12)
 ·转义符的一点总结  (2005-03-11)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统