为什么这不起作用,任何人都可以给出这一个的确切答案....
public class Manager
{
public static void main(String args[])
{
try{
Object obj=new A(); //it will generate ClassNotFoundException object
System.out.println("currently the reference obj is pointer to the object:"+obj);
}catch(Object o)
{
System.out.println(o);
}
}
System.out.println("End of Main");
}
Run Code Online (Sandbox Code Playgroud)
这不会简单,因为在"catch"语句中声明的变量必须是异常类型(即Throwable或子类型).
从Java语言规范的14.20节:
catch子句必须只有一个参数(称为异常参数); 声明的异常参数类型必须是Throwable类或Throwable的子类(不仅仅是子类型),否则会发生编译时错误.特别是,如果声明的异常参数类型,则是编译时错误是一个类型变量(§4.4).参数变量的范围是catch子句的块.
当然你可以写:
catch(Throwable t)
{
Object o = t;
System.out.println(o);
}
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚你为什么要这么做.
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |