JavaScript Academy · Lektion

Läsa stackspårningar

Spåra fel tillbaka till deras källa.

Lektion 4 av 413 steg

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)
Gratis att börja

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

  1. Bortom console.log
  2. Sätta brytpunkter
  3. Stega igenom kod
  4. Läsa stackspårningar
← Tillbaka till JavaScript Academy