Ruby:
Gestion des erreurs
Comment faire :
Ruby utilise begin
, rescue
, ensure
, et end
pour gérer les erreurs. Vous encadrez le code à risque entre begin
et end
. Si une erreur se produit, rescue
intervient.
begin
# Le code à risque se trouve ici.
puts 10 / 0
rescue ZeroDivisionError => e
puts "Oups ! Vous ne pouvez pas faire ça : #{e.message}"
ensure
puts "Ceci s'exécute toujours, qu'il y ait erreur ou non."
end
Exemple de sortie :
Oups ! Vous ne pouvez pas faire ça : divisé par 0
Ceci s'exécute toujours, qu'il y ait erreur ou non.
Approfondissement
Historiquement, la gestion des erreurs dans les langages de programmation a beaucoup évolué, avec des anciens langages ayant souvent des mécanismes rudimentaires ou inexistants. La gestion des exceptions de Ruby est inspirée de langages comme Python et Smalltalk.
Les alternatives à begin-rescue
dans Ruby incluent l’utilisation de rescue
dans les définitions de méthodes ou l’emploi de throw
et catch
pour un contrôle de flux non standard, bien qu’ils ne soient pas utilisés pour la gestion typique des erreurs.
Un détail intéressant : les exceptions de Ruby sont des objets (instances de la classe Exception
et de ses descendants), donc vous pouvez définir des classes d’erreurs personnalisées et faire plus que simplement enregistrer les erreurs — vous pouvez transporter un état riche à travers le programme pour une gestion des erreurs plus robuste.
Voir Aussi
- La documentation de Ruby sur les exceptions et la gestion des erreurs : ruby-doc.org
- Un guide détaillé sur les meilleures pratiques de gestion des erreurs en Ruby : thoughtbot.com