Hola gente del grupo, viniendo del mundo de Java, en su momento aprendí a tomarle el gustito al tema de las Chained Exceptions, un mecanismo que provee la Exception base de Java (en realidad <<i>> Throwable) desde la versión 1.4 (anteriormente había n versiones duplicadas, siendo n la cantidad de programadores Java en el mundo). Este mecanismo permite wrapear excepciones de un nivel inferior al que estamos trabajando para transformarla de manera que el cliente no deba lidiar con exceptions que sean crípticas y específicas de una implementación, sino sólo con otras que formen parte de la API del servicio que se está proveyendo (imaginen si un_model.save! lanzara un "NameError"). Normalmente se rescata una exception y se lanza otra, pero el problema es que en ese momento se pierde toda la información (clase, message y backtrace) de la originaria, que resulta útil para debug.
Obviamente, esto salta cuando se intenta crear alguna abstracción (no cuando nosotros somos los clientes). El tema es que en Ruby no encuentro algún mecanismo similar, y mirando los fuente de ActiveRecord me encuentro que no se usa (de hecho, se ataja una y se lanza otra sin más). ¿Alguien alguna vez tuvo alguna experiencia al respecto? ¿Algún alma ex-Java convertida? [1] http://c2.com/cgi/wiki?NestedException nachokb _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
