Implémentation d'une première approche de gestion des erreurs #52
No reviewers
Labels
No Label
bug
duplicate
enhancement
help wanted
independant
invalid
module/autre
module/backend
module/desktop
module/docs
module/frontend
module/scripts
module/sesam-vitale
module/utils
open-source
question
to-triage
wontfix
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: P4Pillon/Krys4lide#52
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/handle_errors_rustly"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Détails
Implémente (en partie) les "bonnes pratiques" de gestion des erreurs Rust décrites dans le ticket #34
Cette PR se concentre beaucoup sur la gestion des erreurs "internes" et peu sur la manière dont on les expose à l'extérieur (API) ou les trace (dans des logs ou sur une app de suivi de logs). Une deuxième phase de travail sera nécessaire pour cela.
De même, les choix faits à de nombreux endroits sont très perfectibles :
Cela dit, il est difficile de vraiment affiner ces éléments sans être dans des situations concrètes et réalistes. Je pense donc que c'est à force d'itération, en situation concrète et au fur et à mesure des relectures de code en DA que nous améliorerons ces points.
Pourquoi ?
La gestion des erreurs en Rust est extrêmement puissante, permettant de construire des infrastructures où les "bugs" inattendus sont quasiment inexistants. Pour cela, un certain nombre de bonnes pratiques sont à suivre dans la gestion des retours d'erreurs des fonctions et des programmes à plus haut niveau.
Documentation
CF #34
Closes #34
TODO
docs/errors.md
Si ça vous parait pertinent, je peux ajouter quelques tests unitaires, entre autre pour couvrir certaines erreurs (par exemple la présence d'un "null byte"
\0
au milieu d'une chaîne à parser)Top, merci pour cette DA qui permet d'en savoir plus sur les erreurs dans Rust.
Ajoutons nous une documentation pour expliciter les choix que l'on fait dans cette DA dans un fichier comme
docs/errors.md
.Ça permettrait d'expliquer quand nous utilisons plutôt la création d'un enum ou l'utilisation plutôt de
.expect(...)
de mettre des liens comme ceux-ci :Pour moi c'est good!
Tres cool thiserror.
Pourrqis tu expliquer la difference de quand utiliser thiserror vs anyhow dans le docs/error.md ?
Merci pour la documentation <3