TypeScript:
Feilhåndtering

Hvordan:

I TypeScript innebærer feilhåndtering ofte bruk av try, catch, og finally blokker.

function risikabelOperasjon() {
  throw new Error("Noe gikk galt!");
}

function håndterFeil() {
  try {
    risikabelOperasjon();
  } catch (error) {
    console.error("Fanget en feil:", error.message);
  } finally {
    console.log("Dette kjører alltid, feil eller ikke.");
  }
}

håndterFeil();

Eksempel på utdata:

Fanget en feil: Noe gikk galt!
Dette kjører alltid, feil eller ikke.

Asynkront eksempel med løfter (promises):

async function asynkronRisikabelOperasjon() {
  return new Promise((resolve, reject) => {
    // Simulerer en feil
    reject("Mislyktes elendig");
  });
}

async function håndterAsynkroneFeil() {
  try {
    await asynkronRisikabelOperasjon();
  } catch (error) {
    console.error("Fanget asynkron feil:", error);
  }
}

håndterAsynkroneFeil();

Eksempel på utdata:

Fanget asynkron feil: Mislyktes elendig

Dypdykk

Feilhåndtering har vært en grunnpilar i programmering siden starten. I TypeScript, som bygger på JavaScript, ble feilhåndtering mer robust med introduksjonen av async/await i ECMAScript 2017. Før det, stolte vi ofte på tilbakeringingsfunksjoner (callbacks) og løfter (promises) for å håndtere feil i asynkron kode.

Et alternativ til try/catch i TypeScript er å bruke feilgrenser (error boundaries) tilbudt av rammevarek (frameworks) som React. For server-side håndtering kan vi bruke mellomvare (middleware) i plattformer som Express.js for å sentralisere feilhåndtering.

Når det gjelder implementering, har ikke TypeScript sin egen feilhåndteringsmekanisme, men stoler på JavaScripts. Tilpassede feilklasser kan utvide Error-klassen for å tilby mer beskrivende feilinformasjon.

Se Også