Estoy tratando de encontrar la forma de rescatar los errores de sintaxis que surgen cuando eval()
ing código en Ruby 1.8.6.¿Cómo rescatar a un eval en Ruby?
que sería de esperar el siguiente código Ruby:
#!/usr/bin/ruby
good_str = "(1+1)"
bad_str = "(1+1" # syntax error: missing closing paren
begin
puts eval(good_str)
puts eval(bad_str)
rescue => exc
puts "RESCUED!"
end
para producir el siguiente resultado cuando se ejecuta:
2
RESCUED!
En su lugar, lo que consigo es:
2
eval_rescue.rb:8: (eval):1: compile error (SyntaxError)
(eval):1: syntax error, unexpected $end, expecting ')'
Parece que el SyntaxError generado por el método eval está siendo rescatado en algún lugar dentro de la evaluación, sin darme la oportunidad de o manejarlo yo mismo.
¿Alguien tiene alguna idea de cómo obtener el comportamiento que quiero (es decir, para que mi cláusula de 'rescate' capte el error del 'eval')?
favor ver esto: http://stackoverflow.com/questions/10048173/why-is-it-bad-style-to-rescue-exception-e-in-ruby – gamov