Aller au contenu
Exceptions JavaCritique
StackOverflowError

StackOverflowError

La pile d'appels a dépassé sa taille maximale, généralement à cause d'une récursion profonde ou infinie.

jvmandroid

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(); }
Documentation officielle

Codes d'erreur associés