Una traccia dello stack (o traceback) è un output che mostra lo stack del metodo dell'applicazione. In genere ne vedrai uno sul tuo terminale quando la tua applicazione rileva un errore.
Come suggerisce il nome, una struttura di dati dello stack memorizza i metodi in una traccia dello stack. Il metodo in cui inizia l'esecuzione del programma è nella parte inferiore dello stack mentre quello che produce la traccia dello stack è nella parte superiore.
Una traccia dello stack può essere molto utile durante il debug del codice.
Perché è importante una traccia dello stack?
Una traccia dello stack è un importante strumento di debug. Fornisce informazioni dettagliate come il tipo di errore, il metodo in cui si è verificato, la riga nel codice in cui si è verificato e il percorso del file.
Per un programmatore esperto, queste informazioni sono una miniera d'oro per capire cosa è andato storto esattamente e dove.
Come programmatore, puoi anche chiedere al tuo programma di creare una traccia dello stack su richiesta. Ciò può essere particolarmente utile per la manutenzione del codice e la risoluzione dei problemi.
Come generare una traccia dello stack
A seconda della versione del tuo compilatore, molto probabilmente otterrai un traceback leggibile. Un traceback leggibile fornisce un testo intuitivo sull'errore, a differenza del normale traceback. Ciò è particolarmente vero per i nuovi compilatori. Pertanto, il modo migliore per conoscere le tracce dello stack è produrne uno tu stesso.
È possibile produrre una traccia dello stack senza errori nel codice. Per farlo, usa semplicemente il dumpStack metodo del java.lang. Filo classe. Mostrerà tutti i metodi che sono stati chiamati, direttamente da quello che chiama dumpStack. Il metodo di chiamata sarà quello sopra il struttura dei dati dello stack.
Ecco un programma di esempio che genera esplicitamente una traccia dello stack:
classeStackTraceDemo{
pubblicostaticovuotoprincipale(Stringa[] argomenti){
giorno();
}staticovuotogiorno(){
ore();
}staticovuotoore(){
minuti();
}
staticovuotominuti(){
int un = 24 * 60;
System.out.println (a + " minuti in un giorno");
Filo.dumpStack();
}
}
Produzione:
1440 minuti in un giorno
Giava.lang.Eccezione: Pilatraccia
su java.base/java.lang. Thread.dumpStack (Thread.java: 138)
aStackTraceDemo.minuti(StackTraceDemo.Giava:17)
aStackTraceDemo.ore(StackTraceDemo.Giava:11)
aStackTraceDemo.giorno(StackTraceDemo.Giava:7)
aStackTraceDemo.principale(StackTraceDemo.Giava:3)
In questo output, puoi osservare che il traceback mostra come il programma ha chiamato ciascuno Metodo Java e a quale numero di riga nel suo codice sorgente. Il metodo che ha generato la traccia dello stack è quello mostrato nella parte superiore dello stack. Il metodo che lo ha chiamato è sulla riga sottostante e così via.
Oltre la traccia dello stack
Per impostazione predefinita, quando il tuo programma Java si imbatte in un errore si arresterà e visualizzerà una traccia dello stack. Tuttavia, puoi scegliere di gestire questi errori con garbo invece di mostrare messaggi che potrebbero confondere gli utenti finali.
Puoi migliorare la gestione degli errori del tuo programma utilizzando un blocco try...catch() per acquisire le eccezioni. È anche importante considerare e comprendere i vari tipi di errori che i tuoi programmi possono incontrare.