Tour de Rust Table des matières

Renvoi d'erreurs dans le main revisité

Rust possède une pléthore de représentations d'erreurs, mais la bibliothèque standard met à disposition un trait universel std::error::Error pour décrire les erreurs.

En utilisant le pointeur intelligent Box, nous pouvons utiliser le type Box<dyn std::error::Error> comme type courant pour renvoyer des erreurs car celui-ci nous permet de propager une erreur sur le tas et d'interagir avec elle sans avoir à connaître le type spécifique.

Au début du Tour de Rust, nous avons appris que main pouvait renvoyer une erreur. Avec Box, nous pouvons maintenant retourner un type capable de décrire presque tout type d'erreur qui pourrait se produire dans notre programme à condition que la structure de données de l'erreur implémente le trait Error de Rust.

fn main() -> Result<(), Box<dyn std::error:Error>>