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
詳細を表示