hello, I am now currently using this ugly hack to get a reasonable (let's say user friendly) exception backtrace from an error in executed code:
public object Execute(string code, ScriptScope scope) { code = @"begin _=( "+code+@" ) rescue Exception self.__message__=$!.message.to_clr_string self.__backtrace__ = $!.backtrace throw end"; object result = null; try { LogManager.GetLogger("Ruby").Debug("\r\n" + code); result = m_engine.Execute(code, scope); } catch (Exception e) { var backtrace = scope.GetVariable<RubyArray>("__backtrace__"); string msg = scope.GetVariable<string>("__message__") +"\r\n" + string.Join("\r\n", backtrace.Select(s => s.ToString()).ToArray()); LogManager.GetLogger("Ruby").Error(msg); } return result; } Even though it seems to work well I am absolutely not satisfied with it. Is there a better way to do this? -- henon
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core