- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
百度广告
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的
责编:罗莉
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>