一道关于异常的考题!

原创 2004年07月13日 14:46:00

谁能告诉我这样的代码,编译为何不会报错?
 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的.(www.itpub.net)
  

Java异常相关的面试题(上)

1)java中什么是Exception ?        简单的说,异常就是Java传达给系统的和程序错误的方式。在java中,异常功能是通过实现比如 Throwable,Exception,Runt...
  • supersanya
  • supersanya
  • 2016年03月14日 17:29
  • 1799

java学习之路 之 异常处理练习题

/** * 异常的分类 : * 1) 按照严重程度 * 1) Error 严重错误 * 2) Exception 普通异常 * 2) 按照处理要求来分 * 1) 受检异常 ...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016年08月16日 23:39
  • 1583

考察深度学习基础知识的45道题目(附答案)

考察深度学习基础知识的45道题目(附答案)
  • zchang81
  • zchang81
  • 2017年05月04日 15:32
  • 2787

一道String拼接的考题

When doing string concatenation for many times in a loop, which is the fastest way in terms of execu...
  • dtnqy
  • dtnqy
  • 2015年08月14日 12:09
  • 441

黑马程序员——一道关于String的考题引发的总结

写出以下代码执行结果,分析为什么?public class Test7 {  public static void main(String[] args) {         String s = "...
  • waygef
  • waygef
  • 2013年07月29日 12:58
  • 466

由一道高考题而想到的

2017年的高考已经结束,高中的学弟学妹们丢下沉重的包袱谈恋爱去了。而身边的一群群都去勾搭学弟学妹了。再看看我,唉╮( ̄▽ ̄”)╭,没人疼没人爱。算了,我爱学习,学习使我快乐。2017年的课标1数学卷...
  • weixin_37611240
  • weixin_37611240
  • 2017年06月16日 09:37
  • 46

C++及Windows异常处理(try,catch; __try,__finally; __try, __except)——一道笔试题引起的探究

题目: int* p = 0x00000000; // pointer to NULL puts( "hello "); __tr...
  • whatday
  • whatday
  • 2013年08月03日 10:30
  • 1024

C++及Windows异常处理(try,catch; __try,__finally; __try, __except)——一道笔试题引起的探究

转载自 http://www.blogbus.com/shijuanfeng-logs/178616871.html 题目: int* p = 0x0000...
  • lishi969635
  • lishi969635
  • 2015年12月13日 00:25
  • 448

构造函数、析构函数可以抛出异常吗?为什么?(一道百度面试题)

1. 抛出异常 1.1 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常。 该语句的格式为: throw 表达式; ...
  • qq839538016
  • qq839538016
  • 2013年05月20日 22:19
  • 1282

C++及Windows异常处理(try,catch; __try,__finally; __try, __except) ----一道笔试题引起的探究

文章转载自 http://www.blogbus.com/shijuanfeng-logs/178616871.html 题目: int* p = 0x00...
  • lishi969635
  • lishi969635
  • 2015年12月13日 00:42
  • 751
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一道关于异常的考题!
举报原因:
原因补充:

(最多只允许输入30个字)