Gestione degli Errori

Gli errori sono un dato di fatto nel software, quindi Rust ha una serie di funzionalità per gestire situazioni in cui qualcosa va storto. In molti casi, Rust richiede di riconoscere la possibilità di un errore e di intraprendere qualche azione prima che il tuo codice venga compilato. Questo requisito rende il tuo programma più robusto assicurando che scoprirai gli errori e li gestirai appropriatamente prima di distribuire il tuo codice in produzione!

Rust raggruppa gli errori in due categorie principali: errori recuperabili e non recuperabili. Per un errore recuperabile, come un errore di file non trovato, molto probabilmente vogliamo solo segnalare il problema all'utente e riprovare l'operazione. Gli errori non recuperabili sono sempre sintomi di bug, come tentare di accedere a una posizione oltre la fine di un array, e quindi vogliamo fermare immediatamente il programma.

La maggior parte dei linguaggi non distingue tra questi due tipi di errori e li gestisce entrambi allo stesso modo, utilizzando meccanismi come le eccezioni. Rust non ha eccezioni. Invece, ha il tipo Result<T, E> per errori recuperabili e la macro panic! che interrompe l'esecuzione quando il programma incontra un errore non recuperabile. Questo capitolo copre prima la chiamata a panic! e poi parla di restituire valori Result<T, E>. Inoltre, esploreremo considerazioni quando si decide se tentare di recuperare da un errore o fermare l'esecuzione.