TypeScript:
Gestione degli errori

Come fare:

In TypeScript, la gestione degli errori spesso coinvolge blocchi try, catch e finally.

function riskyOperation() {
  throw new Error("Qualcosa è andato storto!");
}

function handleErrors() {
  try {
    riskyOperation();
  } catch (error) {
    console.error("Errore catturato:", error.message);
  } finally {
    console.log("Questo viene sempre eseguito, errore o no.");
  }
}

handleErrors();

Output di esempio:

Errore catturato: Qualcosa è andato storto!
Questo viene sempre eseguito, errore o no.

Esempio asincrono con promesse:

async function asyncRiskyOperation() {
  return new Promise((resolve, reject) => {
    // Simula un errore
    reject("Fallito miseramente");
  });
}

async function handleAsyncErrors() {
  try {
    await asyncRiskyOperation();
  } catch (error) {
    console.error("Errore asincrono catturato:", error);
  }
}

handleAsyncErrors();

Output di esempio:

Errore asincrono catturato: Fallito miseramente

Approfondimento

La gestione degli errori è stata una pietra miliare della programmazione fin dalla sua nascita. In TypeScript, che si basa su JavaScript, la gestione degli errori è diventata più robusta con l’introduzione di async/await in ECMAScript 2017. Prima di ciò, ci affidavamo spesso a funzioni di callback e promesse per gestire errori nel codice asincrono.

Un’alternativa a try/catch in TypeScript è l’uso di limiti di errore forniti da framework come React. Per la gestione lato server, possiamo utilizzare middleware in piattaforme come Express.js per centralizzare la gestione degli errori.

Dal punto di vista dell’implementazione, TypeScript non ha un proprio meccanismo di gestione degli errori, ma si affida a quello di JavaScript. Le classi di errore personalizzate possono estendere la classe Error per offrire informazioni sugli errori più descrittive.

Vedi anche