我有两个版本的代码。在抛出方法()-NullPointerException
,在第二个版本 - Exception
的第一个版本类型的异常。但是第一个版本会编译,但是第二个版本不会编译为什么会发生?为什么异常类型会影响和不会编译的内容?
public class Demo
{
static void Method()
{
try
{
throw new NullPointerException("error");
}
catch(Exception ex)
{
throw ex;
}
}
public static void main(String argv[])
{
try
{
Method();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
这是第二个版本。
public class Demo
{
static void Method()
{
try
{
throw new Exception("error");
}
catch(Exception ex)
{
throw ex;
}
}
public static void main(String argv[])
{
try
{
Method();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
的第一个版本的堆栈跟踪:
java.lang.NullPointerException: error
at Demo.Method(Demo.java:7)
at Demo.main(Demo.java:18)
两个版本都一样吗? – viktor 2011-12-23 15:43:42
@normalityity OP said“does not compil – CPerkins 2011-12-23 15:44:26
他修正了它 - 之前两者都是一样的 – viktor 2011-12-23 15:47:08