On Feb 21, 8:31 am, Sudhi K. email@example.com
Well you could just use eval, but that sounds like an incredibly bad
idea security wise.
I did try ‘eval @test.script’ where the script was filled in the
@test.script but that does not work. Is there a safe way of handling
execution errors that can occur when executing scripts
+1 to Fred’s comment about security - there are some solutions that
the security problems, but eval’ing code sent from the web is a BAD
IDEA. If you
have any user access control in your system, this can get around it.
There are a couple things you might be interested in:
_why’s Sandbox class. It’s mostly a proof of concept, but it might
have some ideas.
Note that while it can keep some bad things from happening, you’ll
still need to give
the sandboxed code access to the DB (that is why you’re evaling Ruby
from the web, right?)
at the very least, some kind of usage of $SAFE, which could protect
a little. But then you’ve got threading problems…
if you just want a console-like environment, Kawaii (http://
save you from re-inventing the wheel.
Finally, to answer your actual question, you’d use a rescue clause to
catch execution errors.
Check your favorite Ruby reference for more details.