跳至内容
Java 异常致命
StackOverflowError

StackOverflowError

调用栈超出其最大容量,通常由深层或无限递归引起。

jvmandroid

导致此错误的原因

方法在没有适当基准情形的情况下递归调用自身,或方法间的相互递归形成无限循环。每次方法调用都消耗栈空间,直到达到上限。

如何修复

在递归方法中添加或修复基准情形。将递归改写为迭代。使用 JVM 参数 -Xss 增大栈大小。检查构造函数或 toString 方法中是否存在意外的无限递归。

示例

void recurse() { recurse(); }
官方文档

相关错误代码