Shortly speaking:
Is there a way in Ruby for DRY-ify:
def entry_point_one
begin
do_something
rescue MySyntaxErrorOne, MySyntaxErrorTwo, MySyntaxErrorEtc => syn_err
raise syn_err.exception(syn_err.message)
end
end
def entry_point_two
begin
do_something_else
rescue MySyntaxErrorOne, MySyntaxErrorTwo, MySyntaxErrorEtc => syn_err
raise syn_err.exception(syn_err.message)
end
end
more
I am building a translator. This interpreter can be invoked using different entry points. If I interpret this interpreter as a dirty string, I expect it to cause an error. However, it would be nice if I didn’t get spam from the entire backtrack from each method called directly or indirectly by do_something, especially since the interpreter uses recursion.
As you can see in the above snippet, I already know a way to increase the error and thereby remove the back trace. I would like to do this to remove duplication in the above example. The closest I have reached so far is:
def entry_point_one
re_raise_known_exceptions {do_something}
end
def entry_point_two
re_raise_known_exceptions {do_something_else}
end
def re_raise_known_exceptions
yield
rescue MySyntaxErrorOne, MySyntaxErrorTwo, MySyntaxErrorEtc => syn_err
raise syn_err.exception(syn_err.message)
end
, re-raise-known-exceptions .
edit: , , - C