En stabelsporing (eller tilbakesporing) er en utdata som viser metodestabelen til applikasjonen din. Du vil vanligvis se en på terminalen din når applikasjonen din støter på en feil.

Som navnet antyder, lagrer en stabeldatastruktur metodene i en stabelsporing. Metoden der programkjøringen begynner er nederst i stabelen mens den som produserer stabelsporet er øverst.

En stabelsporing kan være veldig nyttig når du feilsøker koden din.

Hvorfor er en stabelsporing viktig?

En stabelsporing er et viktig feilsøkingsverktøy. Den gir deg detaljert informasjon som typen feil, metoden der den oppstod, linjen i koden din der den oppstod og filbanen.

For en erfaren programmerer er denne informasjonen en gullgruve for å forstå nøyaktig hva som gikk galt og hvor.

Som programmerer kan du også be programmet om å lage en stabelsporing på forespørsel. Dette kan være spesielt nyttig for kodevedlikehold og feilsøking.

Hvordan skrive ut en stabelsporing

Avhengig av kompilatorversjonen din, vil du mest sannsynlig få en lesbar tilbakesporing. En lesbar traceback gir brukervennlig tekst om feilen, i motsetning til vanlig traceback. Dette gjelder spesielt for nye kompilatorer. Derfor er den beste måten å lære om stabelspor å produsere en selv.

instagram viewer

Du kan lage en stabelsporing uten å ha noen feil i koden. For å gjøre det, bruk ganske enkelt dumpStack metoden for java.lang. Tråd klasse. Den vil vise alle metodene som har blitt kalt, rett fra den som kaller dumpStack. Anropsmetoden vil være den på toppen av stabel datastruktur.

Her er et eksempelprogram som eksplisitt genererer en stabelsporing:

klasseStackTraceDemo{
offentligstatisktomromhoved-(streng[] args){
dag();
}

statisktomromdag(){
timer();
}

statisktomromtimer(){
minutter();
}

statisktomromminutter(){
int a = 24 * 60;
System.out.println (en + " minutter på en dag");
Tråd.dumpStack();
}
}

Produksjon:

1440 minutter på en dag
java.lang.Unntak: Stablespore
på java.base/java.lang. Thread.dumpStack (Thread.java: 138)
StackTraceDemo.minutter(StackTraceDemo.java:17)
StackTraceDemo.timer(StackTraceDemo.java:11)
StackTraceDemo.dag(StackTraceDemo.java:7)
StackTraceDemo.hoved(StackTraceDemo.java:3)

I denne utgangen kan du se at tilbakesporingen viser hvordan programmet kalte hver Java-metoden og på hvilket linjenummer i kildekoden. Metoden som genererte stabelsporet er den som vises øverst i stabelen. Metoden som kalte den er på linjen under den, og så videre.

Beyond the Stack Trace

Som standard, når Java-programmet ditt får en feil, vil det stoppe og vise en stabelsporing. Du kan imidlertid velge å håndtere disse feilene på en elegant måte i stedet for å vise meldinger som kan forvirre sluttbrukere.

Du kan forbedre programmets feilhåndtering ved å bruke en try...catch()-blokk for å fange opp unntak. Det er også viktig å vurdere – og forstå – de ulike typene feil programmene dine kan støte på.