ExpertiDict

Java · Essencial · Inglês · Técnico

StackOverflowError

/stæk ˈoʊvərfloʊ ˈɛrər/substantivo

Erro lançado quando a pilha de uma thread estoura, em geral por recursão sem condição de parada ou profunda demais.

Onde usar

Aparece em recursões infinitas e em grafos de objetos com toString ou equals circulares, em que um objeto chama o outro sem fim.

Em código

int contar(int n) {
  return contar(n + 1); // sem parada
}
contar(0); // StackOverflowError
// aumentar a pilha: java -Xss4m app

Exemplos

The recursion has no base case, so we get a StackOverflowError.

A recursão não tem caso base, então dá StackOverflowError.

Two toString methods calling each other caused a StackOverflowError.

Dois toString chamando um ao outro causaram um StackOverflowError.

Cuidado

É um Error, não uma Exception; capturá-lo para seguir em frente raramente é seguro. Corrija a recursão.

Veja também

Todos os termos de Java