0Pricing
Dart Academy · Lezione

Eccezioni personalizzate e rethrow

Definire errori significativi e rilanciarli.

Eccezioni personalizzate e rethrow è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Errori significativi

Le eccezioni generiche nascondono l'intento. Una eccezione personalizzata indica il problema esatto, rendendo gli errori comprensibili in tutta l'app. 🏷️

Implementare un'eccezione

Crei una classe che implements Exception. In questo modo viene contrassegnata come tipo di errore lanciabile, riconoscibile immediatamente da Dart e da chi legge il codice.

class PaymentException implements Exception {}

Trasportare un messaggio

Assegni all'eccezione un campo message tramite il costruttore, così i gestori possono leggere il motivo dell'errore.

class PaymentException implements Exception {
  final String message;
  PaymentException(this.message);
}

Un toString più leggibile

Sostituisca toString affinché la stampa dell'eccezione mostri una frase chiara invece del solo nome della classe.

@override
String toString() => 'PaymentException: $message';

Lanciare la propria eccezione

Lanci un'eccezione personalizzata proprio come una predefinita. Usi throw con una nuova istanza quando una regola viene violata.

throw PaymentException('Card declined');

Catturare in base al proprio tipo

Catturi la propria eccezione con una clausola on, proprio come per i tipi predefiniti, per gestire specificamente quel caso.

try {
  pay();
} on PaymentException catch (e) {
  print(e);
}

A volte non è possibile risolvere il problema

Un gestore potrebbe registrare un errore senza riuscire a risolverlo. Invece di ignorarlo, può passarlo al livello successivo con rethrow.

La parola chiave rethrow

rethrow rilancia l'eccezione corrente, preservando il suo stack trace originale, così chi la chiama vede dove è iniziata realmente.

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

rethrow è meglio di throw e

Scrivere throw e reimposta lo stack trace; rethrow lo mantiene intatto. Preferisca sempre rethrow quando rilancia un'eccezione all'interno di un catch.

Registrare e propagare

Un modello comune: usi catch per registrare l'errore, quindi rethrow affinché un livello superiore decida come recuperare.

catch (e) {
  logger.error(e);
  rethrow;
}

Aggiungere campi utili

Le eccezioni personalizzate possono contenere dati aggiuntivi, come un code o un valore che ha causato l'errore, fornendo ai gestori un contesto più ricco per intervenire.

class ApiException implements Exception {
  final int code;
  ApiException(this.code);
}

Verifica rapida

Perché usare rethrow invece di throw e all'interno di un catch?

Riepilogo

Ora può creare eccezioni significative che implementano Exception, trasportano dati e usano rethrow per propagare gli errori in modo ordinato. 🚀

Domande Frequenti

La lezione «Eccezioni personalizzate e rethrow» è gratuita?

Sì — il testo completo di «Eccezioni personalizzate e rethrow» è 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 «Eccezioni personalizzate e rethrow»?

Definire errori significativi e rilanciarli. 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 4 di 4.

Quanto tempo richiede la lezione «Eccezioni personalizzate e rethrow»?

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. throw, try e catch
  2. Clausole on e tipi di eccezione
  3. finally e pulizia garantita
  4. Eccezioni personalizzate e rethrow
← Torna a Dart Academy