黑马程序员技术交流社区
标题: 匿名内部内不需要抛出异常? [打印本页]
作者: H._张_♂ 时间: 2014-4-6 20:35
标题: 匿名内部内不需要抛出异常?
- class T1
- {
- public void a()
- {
- new T2()
- {
- public void b() throws Exception
- {
- throw new Exception("T2方法抛出异常");
- }
- };
- }
- }
- class T2
- {
- public void b() throws Exception
- {
- System.out.println("B的b()方法执行。");
- throw new Exception("T2方法抛出异常");
- }
- }
复制代码
这个A类中直接内部类,为什么不说需要抛出异常?
作者: 李厚斌 时间: 2014-4-6 21:01
1,子类重写父类方法要抛出与父类一致的异常,或者不抛出异常
2,子类重写父类方法所抛出的异常不能超过父类的范畴。。
这样的写法是没有问题的。父类抛出的异常包含所有异常。
- class A {
- public void fun() throws Exception {
-
- }
- }
- class B extends A {
- public void fun() throws IOException, RuntimeException {
-
- }
- }
复制代码 这样写法是出错的,子类IOException超过了父类的异常范畴
- class A {
- public void fun() throws IOException {
-
- }
- }
- class B extends A {
- public void fun() throws IOException, RuntimeException, ArithmeticException {
-
- }
- }
复制代码
这样写也是可以的。。可以不抛出异常
- class A {
- public void fun() throws Exception {
- }
- }
- class B extends A {
- public void fun() {
- }
- }
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |