Gestione degli Errori

Gli errori sono una realtà del 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 intraprendere qualche azione prima che il tuo codice venga compilato. Questo requisito rende il tuo programma più robusto garantendo che scoprirai gli errori e li gestirai in modo appropriato prima di distribuire il tuo codice in produzione!

Rust raggruppa gli errori in due grandi categorie: errori recuperabili e errori non recuperabili. Per un errore recuperabile, come un errore di file non trovato, probabilmente vogliamo solo segnalare il problema all'utente e riprovare l'operazione. Gli errori non recuperabili sono sempre sintomi di bug, come ad esempio provare ad 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 allo stesso modo, usando meccanismi come le eccezioni. Rust non ha eccezioni. Invece, ha il tipo Result<T, E> per gli errori recuperabili e la macro panic! che ferma l'esecuzione quando il programma incontra un errore non recuperabile. Questo capitolo copre prima la chiamata a panic! e poi parla della restituzione dei valori Result<T, E>. Inoltre, esploreremo le considerazioni quando si decide se tentare di recuperare da un errore o fermare l'esecuzione.