我有一个java程序,运行无限次.
程序代码:
void asd()
{
try
{
//inside try block
System.out.println("Inside try !!!");
asd();
}
finally
{
//inside finally
System.out.println("Inside finally !!!");
asd();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:通过不断打印两个系统,该程序无限运行.
我的问题:在某些时候,它开始从try块中抛出StackOverflowErrors,因此它到达finally块,我们再次以递归方式调用此函数.但是,当我们已经面临StackOverflowError时,finally块中的递归函数如何执行?
JVM如何处理这种情况?如果我们也得到OutOfMemoryErrors会发生同样的行为吗?