我写了一个java代码,它给了我StackOverflowError: - 在注释部分中,我尝试捕获异常,但无法处理它。何时可以处理StackOverflowError和StackOverflowException?
public class TestExceptions{
public static void main(String [] arg){
try{
new TestExceptions().go();
}catch(Error r){System.out.println("Error is caught:-"+r);}
/*try{
new TestExceptions().go();
}catch(Exception e){System.out.println("Exception is caught here:-"+e);}*/
}
void go(){
System.out.println("Go method is called:-");
go();
}
}
答案 0 :(得分:3)
没有任何名为stackoverflow的例外。它始终是stackoverflower错误。这个链接解释了它发生的原因。
错误和异常之间的区别:
错误“表示合理应用的严重问题 不应该试图抓住。“
,而
异常“表示合理的应用程序可能存在的条件 想赶上。“
参考What is difference between Errors and Exceptions?
您无法捕获异常catch块的错误。错误和异常都具有相同的父Throwable。因此,如果您在catch块中捕获Throwable,您将能够捕获stackoverflower错误。
但永远不会发现错误