Läsa stackspårningar
Spåra fel tillbaka till deras källa.
Läsa stackspårningar är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 4 lektioner.
Vad är en stack trace
En stack trace är en lista över de funktionsanrop som var aktiva när ett fel inträffade. Den visar vilken väg programmet tog fram till felet.
Läs uppifrån och ned
Den översta stackramen i en trace är platsen där felet kastades. Varje rad nedanför visar den anropande funktionen, ända tillbaka till programmets ursprungliga startpunkt.
En stackrams uppbyggnad
Varje stackram anger vanligtvis en funktion samt filen, radnumret och kolumnen där anropet skedde. Det pekar ut den exakta platsen.
Felmeddelandet
Ovanför stackramarna finns feltypen och felmeddelandet, till exempel en TypeError som beskriver vad som gick fel. Läs detta först; det förklarar ofta orsaken.
function getName(user) {
return user.name
}
// calling getName with undefined would throw a TypeError
console.log("Reading the message tells you what failed")Följ anropskedjan
Genom att läsa nedåt återskapar ni förloppet: vilken funktion som anropade vilken, fram till raden där felet uppstod.
Er kod kontra bibliotekskod
Stack traces innehåller ofta stackramar från bibliotek. Fokusera på den översta stackramen som tillhör era egna källfiler, eftersom lösningen vanligtvis finns där.
Asynkrona stack traces
Moderna DevTools sammanfogar asynkrona anrop och visar det ursprungliga sammanhanget för ett promise eller en timer, så att tracen inte bryts vid gränsen.
Skapa en trace manuellt
console.trace skriver ut den aktuella anropsstacken utan att kasta ett fel, vilket hjälper er att se hur en funktion nåddes.
function inner() {
console.trace("reached inner")
}
function outer() {
inner()
}
outer()Egenskapen stack i Error
Ett Error-objekt har en stack-egenskap som innehåller tracen som text. Den kan loggas eller skickas till en felrapporterings tjänst.
const err = new Error("Something failed")
console.log(typeof err.stack)Minifierad kod och source maps
Produktionskod är ofta minifierad, vilket gör stack traces svårtolkade. Source maps översätter minifierade positioner tillbaka till era ursprungliga filer, så att tracen blir läsbar.
Från trace till lösning
Kombinera meddelandet, den översta stackramen från er kod och radnumret för att hitta felet. Granska sedan variablerna där för att bekräfta orsaken.
Snabbtest
Testa era kunskaper om stack traces.
Sammanfattning
Sammanfattning: Stack traces visar vägen fram till ett fel.
- Den översta stackramen visar var felet kastades
- Stackramarna längre ned visar de anropande funktionerna
- Fokusera på den översta stackramen i er egen kod
- Source maps gör minifierade traces läsbara
const err = new Error("fail")
console.log(typeof err.stack)Lär dig JavaScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 59
- Lektioner
- 200
Vanliga frågor
Är lektionen ”Läsa stackspårningar” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Läsa stackspårningar”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Läsa stackspårningar”?
Spåra fel tillbaka till deras källa. Ni övar på JavaScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig JavaScript Academy?
Du behöver inga förkunskaper. Utbildningen i JavaScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Läsa stackspårningar”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här JavaScript Academy-lektionen?
Ja. Varje JavaScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Bortom console.log
- Sätta brytpunkter
- Stega igenom kod
- Läsa stackspårningar