Java 异常致命
StackOverflowErrorStackOverflowError
调用栈超出其最大容量,通常由深层或无限递归引起。
jvmandroid
导致此错误的原因
方法在没有适当基准情形的情况下递归调用自身,或方法间的相互递归形成无限循环。每次方法调用都消耗栈空间,直到达到上限。
如何修复
在递归方法中添加或修复基准情形。将递归改写为迭代。使用 JVM 参数 -Xss 增大栈大小。检查构造函数或 toString 方法中是否存在意外的无限递归。
示例
void recurse() { recurse(); }相关错误代码
Java 异常致命
NoClassDefFoundErrorNoClassDefFoundError
某个类在编译时存在,但在运行时无法加载。
jvmandroidspring
查看详情 Java 异常错误
DirectoryNotEmptyExceptionDirectoryNotEmptyException
目录删除操作失败,因为目录不为空。
jvm
查看详情 Java 异常错误
IOExceptionIOException
I/O 操作失败或被中断。
jvmandroidspring
查看详情 Java 异常错误
InvalidClassExceptionInvalidClassException
序列化的类版本不兼容或格式无效。
jvm
查看详情 Java 异常错误
IllegalArgumentExceptionIllegalArgumentException
方法接收到不符合其预期范围或格式的参数。
jvmandroidspring
查看详情 Java 异常错误
ConcurrentModificationExceptionConcurrentModificationException
在迭代集合的过程中对其进行了修改。
jvmandroidspring
查看详情