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.
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.