StackOverflowErrorStackOverflowError
Lo stack delle chiamate ha superato la sua dimensione massima, di solito a causa di una ricorsione profonda o infinita.
Cause di questo errore
Un metodo si chiama ricorsivamente senza un caso base appropriato, oppure la ricorsione mutua tra metodi crea un ciclo infinito. Ogni chiamata al metodo consuma spazio nello stack finché non si raggiunge il limite.
Come correggerlo
Aggiungere o correggere il caso base nei metodi ricorsivi. Convertire la ricorsione in iterazione. Aumentare la dimensione dello stack con il flag JVM -Xss. Verificare la presenza di ricorsione infinita accidentale nei costruttori o nei metodi toString.
Esempio
void recurse() { recurse(); }Codici di errore correlati
NoClassDefFoundErrorNoClassDefFoundError
Una classe era presente in fase di compilazione ma non può essere caricata a runtime.
DirectoryNotEmptyExceptionDirectoryNotEmptyException
L'eliminazione di una directory fallisce perché la directory non è vuota.
IOExceptionIOException
Un'operazione di I/O fallisce o viene interrotta.
InvalidClassExceptionInvalidClassException
Una classe serializzata ha una versione incompatibile o un formato non valido.
IllegalArgumentExceptionIllegalArgumentException
Un metodo riceve un argomento non valido per il suo intervallo o formato atteso.
ConcurrentModificationExceptionConcurrentModificationException
Una collezione viene modificata mentre è in corso un'iterazione su di essa.