Comment créer et utiliser correctement des types d'erreurs personnalisés en Rust ?
Bonjour à tous ! Je suis débutant en Rust et j'essaie de comprendre la gestion des erreurs. J'ai lu le livre, mais je ne comprends toujours pas comment créer correctement mes propres types d'erreurs pour une bibliothèque.
J'ai un analyseur simple de fichiers de configuration. Je veux qu'il retourne des erreurs claires : "erreur de syntaxe à la ligne X", "paramètre inconnu", "erreur d'entrée-sortie". Actuellement, j'ai fait ceci :
```rust
enum ConfigError {
IoError,
ParseError,
UnknownParam,
}
```
Mais ce n'est pas pratique — il n'y a pas d'information sur l'endroit exact où l'erreur s'est produite. De plus, je ne peux pas utiliser `?` avec `std::io::Error` et mon type en même temps.
J'ai lu sur les traits `std::error::Error`, `Display` et `Debug`, mais je ne comprends pas comment les implémenter correctement. J'ai vu que beaucoup utilisent la crate `thiserror`, mais je veux d'abord comprendre comment faire manuellement.
Pouvez-vous me conseiller sur la façon de concevoir correctement un type d'erreur personnalisé en Rust ? Comment le rendre compatible avec les types d'erreurs standards et l'opérateur `?` ? Est-ce qu'il faut un certain...