class Nydp::Builtin::HandleError

require “nydp/vm”

Public Instance Methods

builtin_call(handler, tricky) click to toggle source
# File lib/nydp/builtin/handle_error.rb, line 6
def builtin_call handler, tricky
  begin
    res = tricky.call
  rescue Exception => e
    o = e
    msgs = []
    traces = []
    while e
      msgs << e.message
      traces << Nydp.enhance_backtrace(e.backtrace)
      e = e.cause
    end
    res = handler.call msgs._nydp_wrapper, traces._nydp_wrapper
  end
  res._nydp_wrapper
end