try/catch/finally, throw og brugerdefinerede fejl
Brug try/catch/finally, kast enkle fejl med throw, og definér en lille brugerdefineret Error for tydeligere meddelelser.
try/catch/finally, throw og brugerdefinerede fejl er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 1 af 2. 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 2 lektioner i alt.
Introduktion til fejlhåndtering
Mål: Håndtér fejl sikkert, og hold programmer stabile.
- Grundlæggende om try/catch
- throw med en tydelig meddelelse
- finally til oprydning
- En lille brugerdefineret Error

Grundlæggende om try/catch
Pak risikable handlinger ind i try. I catch skal du vise en kort og nyttig meddelelse.
// try/catch around risky code
try {
const data = JSON.parse("{\"name\":\"Ayla\"}");
console.log("Parsed:", data.name);
} catch (e) {
// e.message is short and useful on mobile
console.log("Failed to parse:", e.message);
}

Grundlæggende om throw
Brug throw new Error("message") til at stoppe og forklare, hvad der gik galt.
// Throw when inputs are invalid
function doubleNumber(n) {
if (typeof n !== "number") {
throw new Error("Number required");
}
return n * 2;
}
try {
console.log(doubleNumber(4));
console.log(doubleNumber("4")); // will throw
} catch (e) {
console.log("Error:", e.message);
}

finally til oprydning
finally kører, uanset om try lykkedes eller mislykkedes — det er nyttigt til at lukke ressourcer.
// finally runs after try/catch — great for cleanup
let opened = false;
try {
opened = true;
console.log("Opened:", opened);
// Force an error to see finally still run
JSON.parse("{ bad }");
} catch (e) {
console.log("Caught:", e.message);
} finally {
opened = false;
console.log("Closed:", opened);
}

Brugerdefineret Error (kort introduktion)
Opret en lille InputError til problemer med inddata. Brug instanceof til at håndtere den specifikt.
// Make a small custom error
class InputError extends Error {
constructor(message) {
super(message);
this.name = "InputError";
}
}
function positive(n) {
if (typeof n !== "number") {
throw new InputError("Number required");
}
if (n <= 0) {
throw new InputError("Must be positive");
}
return n;
}
try {
console.log("OK:", positive(3));
console.log("Fail:", positive(0));
} catch (e) {
if (e instanceof InputError) {
console.log("Input problem:", e.message);
} else {
// Unknown error: rethrow or log differently
console.log("Unexpected:", e.message);
}
}

Tip og tjekliste
Tip:
- Validér inddata tidligt; kast korte meddelelser.
- Brug finally til oprydning (luk flag, timere osv.).
- Skjul ikke fejl: skriv kort i loggen, eller kast dem videre.

Quiz om finally
Hurtig kontrol: finally-adfærd.

Opsamling
Opsamling: Pak risikabel kode ind i try/catch, kast korte og nyttige fejl, brug finally til oprydning, og definér små brugerdefinerede fejl for at gøre håndteringen tydeligere.

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 “try/catch/finally, throw og brugerdefinerede fejl” gratis?
Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “try/catch/finally, throw og brugerdefinerede fejl”, 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 2 lektioner i alt.
Hvad lærer jeg i “try/catch/finally, throw og brugerdefinerede fejl”?
Brug try/catch/finally, kast enkle fejl med throw, og definér en lille brugerdefineret Error for tydeligere meddelelser. 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 1 af 2.
Hvor lang tid tager lektionen “try/catch/finally, throw og brugerdefinerede fejl”?
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
- try/catch/finally, throw og brugerdefinerede fejl
- Defensiv programmering og inputkontroller