小编ide*_*no1的帖子

finally块中的堆栈溢出错误处理

我有一个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会发生同样的行为吗?

java stack-overflow recursion jvm try-finally

5
推荐指数
1
解决办法
1042
查看次数

标签 统计

java ×1

jvm ×1

recursion ×1

stack-overflow ×1

try-finally ×1