5 votes

Quelles sont les alternatives aux exceptions JVM pour signaler et gérer les erreurs dans le code clojure ?

Contexte

Le livre The Joy of Clojure explique comment les exceptions de la JVM constituent un système fermé et suggère qu'il existe peut-être de meilleures alternatives pour signaler et gérer les erreurs dans Clojure. D'après mon expérience, le système de conditions de common lisp semble idéal, cependant, je ne limite pas les réponses à ce paradigme. D'après ce que j'ai recherché, il existe des conditions (Gilardi) http://clojure.github.com/clojure-contrib/condition-api.html , error-kit (Chouser) http://richhickey.github.com/clojure-contrib/error-kit-api.html et manipulateur (Weiss) https://gist.github.com/745223 Cependant, il ne semble pas y avoir de vainqueur incontestable parmi ces mises en œuvre et je pense que davantage d'informations sur le sujet seraient utiles.

Comment les alternatives existantes ont-elles été utilisées avec succès dans des projets ? Je suis à la recherche d'exemples à imiter.

Comment ces systèmes alternatifs surmontent-ils les limitations du système d'exception de la JVM ?

Quelles sont les orientations futures ou quelles sont les alternatives expérimentales à l'horizon et ce qu'elles impliquent ?

2voto

Alex Miller Points 28225

Pour info, ce sujet est discuté dans clojure-dev. Collecte d'idées aquí et le fil aquí .

0voto

Shantanu Kumar Points 558

De nombreuses années se sont écoulées depuis que la question a été posée, mais je pense que le sujet est toujours d'actualité. J'ai travaillé sur Promenade (voir documentation ) qui peut exprimer l'erreur en tant que donnée et fournit une gestion des erreurs et un flux de contrôle élégants. Il existe également d'autres projets (mentionnés dans le README de Promenade) qui tentent de résoudre le même problème.

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