On 9/5/07, NachoKB <[EMAIL PROTECTED]> wrote:
> 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?
>
Algo asi???:
begin
0/0
rescue Exception => e
p "Tu exception era: #{e}"
raise 'Pero mejor aprende a dividir'
end
rescue y raise (para tirar otra) serian la solucion.
Tiras una que vos creas u otra de las Built-in Exceptions.... No se si
te entendi bien o era lo que buscabas, de cualquier manera suerte con
eso!
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar