我知道我们不应该使用try catch来处理java中的Error,但是我尝试了它来学习并发现我们可以使用try catch块处理Error类似的Exception。即使是catch块之后的代码也正在执行。我生成了一个StackOverFlowError,但我仍然可以初始化局部变量。 任何人都可以解释一下吗?
import java.util.LinkedList;
import java.util.List;
public class ExceptionDemo {
public static void main(String[] args) {
try{
method1();
}
catch(Error e){
System.out.println(e.getStackTrace());
System.out.println("Hello world");
int a =10;
System.out.println(a);
method();
}
System.out.println("Hello world2");
}
public static void method1(){
method1();
}
public static void method(){
List l1 = new LinkedList();
l1.add("A");
int[] aa = new int[10000];
aa[0]=25;
System.out.println(aa[0]);
int b =10;
int c = 20;
System.out.println( b +""+c);
}
}
此课程的输出是 -
[Ljava.lang.StackTraceElement;@1db9742
Hello world
10
25
1020
Hello world2