0Pricing
Dart Academy · Lezione

Gestire gli errori nel codice async

Usare try/catch con await in sicurezza.

Gestire gli errori nel codice async è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Dart Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Dart Academy include 4 lezioni in totale.

I Future possono fallire

Il lavoro asincrono può andare storto: un server va in timeout o manca un file. Un Future può completarsi con un errore invece che con un valore.

try e catch con await

Racchiuda un await in try/catch e un future fallito genererà un'eccezione proprio su quella riga, come i normali errori sincroni.

try {
  final data = await fetch();
} catch (e) {
  print("failed: $e");
}

Intercettare tipi specifici

Utilizzi una clausola on per gestire con precisione un tipo di errore, lasciando che gli altri errori risalgano senza modifiche.

try {
  await load();
} on TimeoutException {
  print("too slow");
}

Esaminare l'errore

Aggiunga catch (e, s) per acquisire sia l'oggetto errore sia la relativa stack trace, rendendo molto più semplice il debug degli errori asincroni.

catch (e, s) {
  print(e);
  print(s);
}

finally viene sempre eseguito

Un blocco finally viene eseguito sia quando await ha successo sia quando genera un'eccezione, quindi è il posto giusto per chiudere file o fermare gli indicatori di caricamento.

try {
  await save();
} finally {
  closeFile();
}

Sollevare un errore da async

Utilizzi throw all'interno di una funzione async e il future restituito si completerà semplicemente con quell'errore, pronto per essere intercettato dal chiamante.

Future<int> risky() async {
  throw StateError("nope");
}

Errori nelle catene then

Senza await, colleghi catchError a un future per gestire un errore in una catena nello stile di then.

fetch().then(use).catchError(handle);

Recuperare con un valore predefinito

In catchError o catch può restituire un valore alternativo, consentendo al programma di proseguire correttamente dopo un errore.

Errori di Future non gestiti

Un future fallito ignorato diventa un errore non catturato che può causare un arresto anomalo o produrre messaggi nei log. Intercetti o attenda sempre i suoi Future.

Rilanciare quando serve

Utilizzi rethrow all'interno di un catch per registrare qui l'errore e permettere comunque a un gestore esterno di occuparsene.

catch (e) {
  log(e);
  rethrow;
}

await dentro finally

Può persino usare await dentro finally per eseguire operazioni di pulizia asincrone, come svuotare un buffer, prima che la funzione restituisca il controllo.

Verifica rapida

Una verifica rapida sulla gestione degli errori asincroni.

Riepilogo: errori asincroni

Ha imparato a proteggere await con try/catch, a selezionare i tipi con on, a eseguire la pulizia in finally e a recuperare o rilanciare gli errori. 🛡️

Domande Frequenti

La lezione «Gestire gli errori nel codice async» è gratuita?

Sì — il testo completo di «Gestire gli errori nel codice async» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Dart Academy, passa a CoddyKit PRO. Il corso Dart Academy include 4 lezioni in totale.

Cosa imparerò in «Gestire gli errori nel codice async»?

Usare try/catch con await in sicurezza. Eserciti Dart Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Dart Academy?

Non è richiesta alcuna esperienza precedente. Dart Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Gestire gli errori nel codice async»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Dart Academy?

Sì. Ogni lezione Dart Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Event loop e microtask
  2. Creare e attendere i Future
  3. Gestire gli errori nel codice async
  4. Future.wait e lavoro parallelo
← Torna a Dart Academy