查看程序
public class ExceptionPropagation {
void method3() {
throw new Exception(); //raises exception
// throw new ArithmeticException(); NO Exception arised
}
void method1() {
try{
method3();
} catch(Exception e) {
System.out.println("Exception is handled here");
}
}
public static void main(String args[]) {
ExceptionPropagation obj=new ExceptionPropagation();
obj.method1();
}
}
为什么它在未经检查的例外的情况下起作用,为什么不检查? 任何人都可以解释它与jvm方面有关吗?
答案 0 :(得分:0)
有两种类型的例外。
已检查的异常是编译时异常。即它将在编译时检查。在您的情况下,Exception
类是已检查的异常。因此,您必须在方法签名中明确提及关键字throws
以传递编译错误。
未经检查的异常是运行时异常。即只在运行时检查它。 ArithmethicException
是未经检查的例外。