黑马程序员技术交流社区

标题: Exception 继承问题 [打印本页]

作者: fso918    时间: 2011-9-26 10:43
标题: Exception 继承问题
大家帮我看下,下面这段代码,为什么会不能通过编译
package com;
class A extends Exception{

}
class B extends A{

}
public class Test {
public static void main(String args[]) {
  try{
   throw new B();
  }catch(A a){
   System.out.println("A is caught");
  }catch(Exception a){
   System.out.println("Exception is caught");
  }
}
}
异常信息为:
Exception in thread "main" java.lang.VerifyError: (class: com/Test, method: main signature: ([Ljava/lang/String;)V) Can only throw Throwable objects
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
at java.lang.Class.getMethod0(Class.java:2685)
at java.lang.Class.getMethod(Class.java:1620)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:484)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:476)

难道异常不能多重继承?
作者: 匿名    时间: 2011-9-26 10:58
首先 ,这不叫多重继承,java只能单继承,为了克服这个缺点,就用那接口
其次,这个程序我测试的没有问题
作者: 匿名    时间: 2011-9-26 10:59
我用的JDK 7
你的时哪个版本的?
作者: 匿名    时间: 2011-9-26 11:12
哎呀  java7  是不是刚出来的呀  我的应该不是呢
作者: 匿名    时间: 2011-9-26 12:53
我再Eclipse里面执行这段的代码,报异常
但是我在命令行里直接编译运行,没报异常。
看来是Eclipse的问题。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2