JavaScript Academy · Lektion

Feldomäner (konceptuellt) utan ramverk

Skapa små feldomäner i vanlig JS: try/catch runt riskfylld kod, omslutande hjälpfunktioner, asynkron try/catch, reservvärden och minimal loggning.

Lektion 3 av 38 steg

Feldomäner (konceptuellt) utan ramverk är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 3 av 3. 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 3 lektioner.

Överblick

Mål: Förhindra att ett fel slår ut hela skärmen.

  • Använd try/catch runt riskfyllda delar
  • Lägg till en liten hjälpfunktion, runSafe
  • Hantera även async med try/catch
  • Returnera reservvärden och logga kortfattat
Feldomäner (konceptuellt) utan ramverk — illustration 1

Lokal gräns: parsning

Omslut endast det riskfyllda steget (JSON.parse). Returnera ett enkelt reservobjekt om något går fel.

// Try/catch boundary: parse user JSON with a fallback
function safeParseUser(json) {
  try {
    const obj = JSON.parse(json);
    // minimal validation
    if (!obj || typeof obj.name !== "string") {
      return { name: "Guest" };
    }
    return { name: obj.name };
  } catch (err) {
    // fallback on parse error
    return { name: "Guest" };
  }
}

console.log("ok:", safeParseUser("{\"name\":\"Ayla\"}"));
console.log("bad:", safeParseUser("{oops}"));
Feldomäner (konceptuellt) utan ramverk — illustration 2

Hjälpfunktionen runSafe

Skapa en liten hjälpfunktion och återanvänd den. Håll loggarna korta och undvik att läcka hemligheter.

// A tiny boundary helper for sync functions
function runSafe(fn, fallback) {
  try {
    return fn();
  } catch (e) {
    // log minimal info for beginners
    console.log("error:", String(e));
    return fallback;
  }
}

// Use it
const resultOk = runSafe(function () {
  return 2 + 2;
}, 0);

const resultFail = runSafe(function () {
  // simulate crash
  throw new Error("boom");
}, 0);

console.log("ok:", resultOk, "fail:", resultFail);
Feldomäner (konceptuellt) utan ramverk — illustration 3

Asynkron gräns

För async-arbete ska du använda try/catch runt await och returnera en reservsträng eller ett reservvärde.

// Async boundary: try/catch inside an async function
async function fetchNameFake(id) {
  // simulate failure for odd ids
  if (id % 2 === 1) {
    throw new Error("not found");
  }
  return "Ayla";
}

async function loadName(id) {
  try {
    const name = await fetchNameFake(id);
    return name;
  } catch (e) {
    console.log("async error:", String(e));
    return "Guest";
  }
}

(async function () {
  console.log("even:", await loadName(2));
  console.log("odd :", await loadName(3));
})();
Feldomäner (konceptuellt) utan ramverk — illustration 4

Isolera risken

Omslut inte hela appen. Isolera det riskfyllda steget så att ett fel inte blockerar allt.

// Boundary only around the risky step, rest continues
function renderCard(userJson) {
  // boundary: parse
  const user = safeParseUser(userJson);
  // rest of rendering can continue with fallback
  return "Hello " + user.name;
}

console.log(renderCard("{\"name\":\"Lina\"}"));
console.log(renderCard("{broken}")); // still renders with fallback
Feldomäner (konceptuellt) utan ramverk — illustration 5

Vanor vid gränser

Checklista:

  • Placera en liten try/catch runt riskfyllda anrop.
  • Returnera ett litet reservvärde.
  • Logga kortfattat, utan hemligheter.
  • Upprepa mönstret för async-anrop.
Feldomäner (konceptuellt) utan ramverk — illustration 6

Quiz: grunderna i felgränser

Snabb kontroll: En felgräns i vanlig JS.

Feldomäner (konceptuellt) utan ramverk — illustration 7

Sammanfattning

Sammanfattning: Lägg till en lokal try/catch runt riskfylld kod, använd hjälpfunktionen runSafe, hantera async med try/catch och tillhandahåll reservvärden så att skärmen fortsätter fungera.

Feldomäner (konceptuellt) utan ramverk — illustration 8
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 ”Feldomäner (konceptuellt) utan ramverk” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Feldomäner (konceptuellt) utan ramverk”, 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 3 lektioner.

Vad lär jag mig i ”Feldomäner (konceptuellt) utan ramverk”?

Skapa små feldomäner i vanlig JS: try/catch runt riskfylld kod, omslutande hjälpfunktioner, asynkron try/catch, reservvärden och minimal loggning. 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 3 av 3.

Hur lång tid tar lektionen ”Feldomäner (konceptuellt) utan ramverk”?

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. Indatavalidering och grunderna i escaping
  2. Säker objektsammanslagning, frysning och försegling
  3. Feldomäner (konceptuellt) utan ramverk
← Tillbaka till JavaScript Academy