throw, try e catch
Rilevare e gestire gli errori.
throw, try e catch è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 1 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.
Quando qualcosa va storto
I programmi incontrano problemi: input non valido, file mancanti, calcoli errati. Dart segnala questi problemi con un'eccezione, invece di comportarsi in modo errato senza avvisare. 🚨
Generare un'eccezione
Potete sollevare personalmente un problema con throw. Questo interrompe il normale flusso nel punto in cui si verifica e trasferisce il controllo a un gestore.
throw Exception('Something failed');Potete generare qualsiasi oggetto
Dart consente di usare throw con quasi qualsiasi oggetto, persino una String. In pratica, generate oggetti Exception o Error reali, così i gestori rimangono chiari.
throw FormatException('Bad number');Proteggere il codice rischioso
Racchiudete il codice che potrebbe fallire in un blocco try. Dart lo esegue normalmente, ma è pronto a reagire se qualcosa genera un'eccezione.
try {
risky();
}Intercettare il problema
Un blocco catch viene eseguito solo quando il blocco try genera un'eccezione. Riceve l'oggetto generato, consentendovi di esaminarlo e reagire.
try {
risky();
} catch (e) {
print('Caught: $e');
}Il flusso salta oltre
Quando viene eseguito un throw, il resto del blocco try viene saltato immediatamente. Dart passa direttamente al blocco catch corrispondente.
Leggere l'oggetto errore
La variabile in catch (e) contiene ciò che è stato generato. Stamparla mostra generalmente un messaggio utile che descrive il problema.
catch (e) {
print(e);
}Recuperare lo stack trace
Aggiungete una seconda variabile a catch per ottenere lo stack trace. Mostra il percorso delle chiamate che ha portato al problema, semplificando il debug.
catch (e, stack) {
print(stack);
}Recuperare, non arrestare
Lo scopo principale dell'intercettazione è il recupero. Invece di arrestarsi, il programma può registrare l'errore, riprovare o mostrare all'utente un'alternativa amichevole.
Se non viene intercettata, l'eccezione arresta il programma
Se nessun blocco catch intercetta un'eccezione generata, questa risale la catena e il programma si arresta, mostrando un errore nella console.
Un esempio completo
Ecco lo schema completo: un throw all'interno di try, intercettato e gestito correttamente affinché l'esecuzione possa continuare.
try {
throw Exception('Oops');
} catch (e) {
print('Handled: $e');
}Controllo rapido
Quale blocco reagisce effettivamente a un'eccezione generata?
Riepilogo
Ora sapete segnalare i problemi con throw, proteggere il codice rischioso in try e recuperare la situazione in catch. Questa combinazione mantiene in esecuzione il programma. 🎉
Domande Frequenti
La lezione «throw, try e catch» è gratuita?
Sì — il testo completo di «throw, try e catch» è 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 «throw, try e catch»?
Rilevare e gestire gli errori. 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 1 di 4.
Quanto tempo richiede la lezione «throw, try e catch»?
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
- throw, try e catch
- Clausole on e tipi di eccezione
- finally e pulizia garantita
- Eccezioni personalizzate e rethrow