StackOverflowErrorStackOverflowError
La pile d'appels a dépassé sa taille maximale, généralement à cause d'une récursion profonde ou infinie.
Causes de cette erreur
Une méthode s'appelle elle-même récursivement sans cas de base approprié, ou une récursion mutuelle entre méthodes crée une boucle infinie. Chaque appel de méthode consomme de l'espace de pile jusqu'à atteindre la limite.
Comment la corriger
Ajoutez ou corrigez le cas de base dans les méthodes récursives. Convertissez la récursion en itération. Augmentez la taille de la pile avec le flag JVM -Xss. Vérifiez les récursions infinies accidentelles dans les constructeurs ou les méthodes toString.
Exemple
void recurse() { recurse(); }Codes d'erreur associés
NoClassDefFoundErrorNoClassDefFoundError
Une classe trouvée à la compilation ne peut pas être chargée à l'exécution.
DirectoryNotEmptyExceptionDirectoryNotEmptyException
La suppression d'un répertoire échoue car le répertoire n'est pas vide.
IOExceptionIOException
Une opération d'E/S échoue ou est interrompue.
InvalidClassExceptionInvalidClassException
Une classe sérialisée a une version incompatible ou un format invalide.
IllegalArgumentExceptionIllegalArgumentException
Une méthode reçoit un argument qui n'est pas valide selon la plage ou le format attendus.
ConcurrentModificationExceptionConcurrentModificationException
Une collection est modifiée pendant qu'elle est parcourue.