电话:0731-83595998
导航

JAVA练习题:答疑解惑一道SCJP考题

来源: 2017-12-19 10:39

 百度广告

谁能告诉我这样的代码,编译为何不会报错?

lass 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的子类.

   它们没有任何的继承关系. 

   但是现在可以编译通过,请问这是为什么?

   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的

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端