Um rastreamento de pilha (ou rastreamento) é uma saída que mostra a pilha de métodos de seu aplicativo. Você normalmente verá um em seu terminal quando seu aplicativo encontrar um erro.

Como o nome sugere, uma estrutura de dados de pilha armazena os métodos em um rastreamento de pilha. O método onde a execução do programa começa está na parte inferior da pilha, enquanto aquele que produz o rastreamento de pilha está no topo.

Um rastreamento de pilha pode ser muito útil quando você está depurando seu código.

Por que um rastreamento de pilha é importante?

Um rastreamento de pilha é uma importante ferramenta de depuração. Ele fornece informações detalhadas, como o tipo de erro, o método em que ocorreu, a linha em seu código onde ocorreu e o caminho do arquivo.

Para um programador experiente, essa informação é uma mina de ouro para entender o que exatamente deu errado e onde.

Como programador, você também pode pedir ao seu programa para criar um rastreamento de pilha sob demanda. Isso pode ser particularmente útil para manutenção de código e solução de problemas.

instagram viewer

Como gerar um rastreamento de pilha

Dependendo da versão do seu compilador, você provavelmente obterá um traceback legível. Um traceback legível fornece um texto amigável sobre o erro, ao contrário do traceback normal. Isso é especialmente verdadeiro para novos compiladores. Portanto, a melhor maneira de aprender sobre rastreamentos de pilha é produzir um você mesmo.

Você pode produzir um rastreamento de pilha sem erros em seu código. Para isso, basta usar o pilha de despejo método do java.lang. Fio classe. Ele mostrará todos os métodos que foram chamados, desde aquele que chama dumpStack. O método de chamada será aquele no topo do pilha de estrutura de dados.

Aqui está um programa de exemplo que gera explicitamente um rastreamento de pilha:

classeStackTraceDemo{
públicoestáticovazioa Principal(String[] argumentos){
dia();
}

estáticovaziodia(){
horas();
}

estáticovaziohoras(){
minutos();
}

estáticovaziominutos(){
int a = 24 * 60;
System.out.println (um + " minutos em um dia");
Fio.dumpStack();
}
}

Resultado:

1440 minutos em um dia
Java.lang.Exceção: Pilhavestígio
em java.base/java.lang. Thread.dumpStack (Thread.java: 138)
noStackTraceDemo.minutos(StackTraceDemo.Java:17)
noStackTraceDemo.horas(StackTraceDemo.Java:11)
noStackTraceDemo.dia(StackTraceDemo.Java:7)
noStackTraceDemo.a Principal(StackTraceDemo.Java:3)

Nesta saída, você pode observar que o traceback mostra como o programa chamou cada método Java e em qual número de linha em seu código-fonte. O método que gerou o rastreamento de pilha é aquele mostrado no topo da pilha. O método que chamou aquele está na linha abaixo dele, e assim por diante.

Além do rastreamento de pilha

Por padrão, quando seu programa Java é executado em um erro, ele para e exibe um rastreamento de pilha. No entanto, você pode optar por lidar com esses erros normalmente em vez de mostrar mensagens que podem confundir os usuários finais.

Você pode melhorar o tratamento de erros do seu programa usando um bloco try...catch() para capturar exceções. Também é importante considerar – e entender – os vários tipos de erros que seus programas podem encontrar.