如何在Java中处理StackOverflowError?[已关闭]

2022-09-03 03:16:07

我该如何处理Java?StackOverflowError


答案 1

我不确定你说的“句柄”是什么意思。

您当然可以捕获该错误:

public class Example {
    public static void endless() {
        endless();
    }

    public static void main(String args[]) {
        try {
            endless();
        } catch(StackOverflowError t) {
            // more general: catch(Error t)
            // anything: catch(Throwable t)
            System.out.println("Caught "+t);
            t.printStackTrace();
        }
        System.out.println("After the error...");
    }
}

但这很可能是一个坏主意,除非你确切地知道你在做什么。


答案 2

你可能有一些无限递归。

即一遍又一遍地调用自己的方法

public void sillyMethod()
{
    sillyMethod();
}

处理此问题的一种方法是修复代码,以便递归终止而不是永远继续。