StackOverflowError和StackOverflowException之间的区别?

时间:2014-06-03 03:43:35

标签: java exception

我写了一个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();
}

}

1 个答案:

答案 0 :(得分:3)

没有任何名为stackoverflow的例外。它始终是stackoverflower错误。这个链接解释了它发生的原因。

What is a StackOverflowError?

错误和异常之间的区别:

  

错误“表示合理应用的严重问题   不应该试图抓住。“

,而

  

异常“表示合理的应用程序可能存在的条件   想赶上。“

参考What is difference between Errors and Exceptions?

您无法捕获异常catch块的错误。错误和异常都具有相同的父Throwable。因此,如果您在catch块中捕获Throwable,您将能够捕获stackoverflower错误。

  

但永远不会发现错误