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

Responder a