181 votes

Quelle est la différence entre augmenter les exceptions et les exceptions de lancer dans Ruby?

Ruby a deux mécanismes d'exception différents: Throw / Catch et Raise / Rescue.

Pourquoi en avons-nous deux?

Quand devriez-vous en utiliser un et pas l'autre?

114voto

Jared Beck Points 4975

Pour citer Avdi Grimm:

Contrairement à d'autres langues, de Rubis à lancer et à attraper ne sont pas utilisés pour les exceptions. Au lieu de cela, ils fournissent un moyen de mettre fin à l'exécution anticipée lorsque aucun davantage de travail est nécessaire.

http://rubylearning.com/blog/2011/07/12/throw-catch-raise-rescue-im-so-confused/

Voir aussi:

http://ruby-doc.org/docs/ProgrammingRuby/html/tut_exceptions.html

109voto

Readonly Points 48598

Je pense que http://hasno.info/ruby-gotchas-and-caveats a une explication décente de la différence :

capture/lancer ne sont pas les mêmes comme relance/sauvetage. capture/lancer permet de quitter rapidement les blocs vers un point où une prise est définie pour un symbole spécifique, sauvetage de relance est la véritable exception manutention trucs impliquant l’objet Exception.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X