这是为什么?此代码编译正常,但在运行时抛出在JAVA中的异常处理和抛出语句的使用
public class Except
{
public static void main(String args[])
{
System.out.println("Hey, I am under main");
method();
}
static void method()
{
throw new NullPointerException();
}
}
异常但这个代码不编译
public class Expect
{
public static void main(String args[])
{
System.out.println("Hey, I am under main");
method();
}
static void method()
{
throw new IllegalAccessException();
}
}
为什么会是这样?那变化异常的类型,第二个代码不编译。有人请解释,并且我已经在第一个代码中使用了throw语句,并且由于它的编译正确,那么使用方法声明来写入throws语句有什么用处。 我使用JDK 1.8.0_45
,IOException是否发生? –
@RajMalhotra检查[此链接](https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html)。您将找到所有类,它们(直接)从'RuntimeException'继承。 – Turing85
@RajMalhotra yes,IOException也是一个检查异常,就像异常的任何子类不是RuntimeException的子类一样。 – Eran