一道关于异常的考题!
来源:互联网 发布:网络诈骗宣传片 编辑:程序博客网 时间:2024/05/02 02:37
谁能告诉我这样的代码,编译为何不会报错?
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)
- 一道关于异常的考题!
- IBM 的一道考题(转)
- 网宿的一道考题
- 一道String拼接的考题
- 黑马程序员——一道关于String的考题引发的总结
- 关于程序员的考题
- 关于char 的考题
- 某公司的一道机考题的解答
- python一道关于异常处理的问题
- 用C#实现的一道公务员考题
- 08一级建造师的一道考题
- 由一道高考题而想到的
- 收藏一道软考题
- 一道C语言考题
- 所谓的阿里巴巴的一道递归排序的考题
- JavaScript 的一道有趣考题 (论坛回复摘要)
- 关于链表的常见考题
- 关于浮动元素的经典考题
- 加了表情图片。
- 职业生涯自我规划五步法
- 本实验室第一篇文章
- 昨天新班开始培训!
- 数制互相转换的源程序1
- 一道关于异常的考题!
- 转贴(csdn):JScript中正则表达函数的说明与应用
- 数值相互转换源程序2
- CFML中URLEncodedFormat应用实例
- 转贴(CSDN):c#中分割字符串的几种方法
- 转贴(csdn):解读 C# 中的正则表达式
- 无题
- Java 多线程入门大全(适用于有一定基础者)
- fdasdasfdas