Læsning af stack traces
Spor fejl tilbage til deres kilde.
Læsning af stack traces er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 4 lektioner i alt.
Hvad er et stakspor
Et stakspor er listen over funktionskald, der var aktive, da der opstod en fejl. Det viser den sti, programmet fulgte frem til fejlen.
Læsning fra top til bund
Den øverste ramme i et stakspor er det sted, hvor fejlen blev udløst. Hver linje nedenunder viser den kaldende funktion helt ned til programmets oprindelige startpunkt.
En rammes opbygning
Hver ramme angiver typisk en funktion og derefter den fil, det linjenummer og den kolonne, hvor kaldet fandt sted. Det peger på den nøjagtige placering.
Fejlmeddelelsen
Over rammerne står fejlens navn og meddelelse, f.eks. en TypeError, der beskriver, hvad der gik galt. Læs dette først; det forklarer ofte årsagen.
function getName(user) {
return user.name
}
// calling getName with undefined would throw a TypeError
console.log("Reading the message tells you what failed")Følg kaldkæden
Ved at læse ned gennem staksporet kan du rekonstruere rækkefølgen: hvilken funktion der kaldte hvilken, frem til den linje, hvor fejlen opstod.
Din kode kontra bibliotekskode
Stakspor indeholder ofte rammer fra biblioteker. Fokuser på den øverste ramme, der tilhører dine egne kildefiler, da løsningen normalt findes dér.
Asynkrone stakspor
Moderne DevTools samler asynkrone kald, så den oprindelige kontekst for et Promise eller et tidsur vises, og staksporet ikke afbrydes ved grænsen.
Manuel generering af et stakspor
console.trace udskriver den aktuelle kaldestak uden at udløse en fejl. Det hjælper dig med at se, hvordan en funktion blev nået.
function inner() {
console.trace("reached inner")
}
function outer() {
inner()
}
outer()Error-objektets stack-egenskab
Et Error-objekt har en stack-egenskab, der indeholder staksporet som tekst. Du kan logge teksten eller sende den til en tjeneste til fejlrapportering.
const err = new Error("Something failed")
console.log(typeof err.stack)Minificeret kode og kildekort
Produktionskode er ofte minificeret, hvilket gør stakspor kryptiske. Kildekort oversætter minificerede placeringer tilbage til dine oprindelige filer, så staksporene bliver læselige.
Fra stakspor til løsning
Kombinér meddelelsen, den øverste ramme fra din egen kode og linjenummeret for at finde fejlen. Undersøg derefter variablerne dér for at bekræfte årsagen.
Hurtig kontrol
Test din viden om stakspor.
Opsummering
Opsummering: Stakspor afslører vejen frem til en fejl.
- Den øverste ramme er det sted, hvor fejlen blev udløst
- Rammerne længere nede er de kaldende funktioner
- Fokuser på den øverste ramme i din egen kode
- Kildekort gør minificerede stakspor læselige
const err = new Error("fail")
console.log(typeof err.stack)Lær JavaScript med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 59
- Lektioner
- 200
Ofte stillede spørgsmål
Er lektionen “Læsning af stack traces” gratis?
Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Læsning af stack traces”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Læsning af stack traces”?
Spor fejl tilbage til deres kilde. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på JavaScript Academy?
Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Læsning af stack traces”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?
Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Mere end console.log
- Angivelse af breakpoints
- Gennemgang af kode trin for trin
- Læsning af stack traces