【发布时间】:2011-05-25 15:46:36
【问题描述】:
您好!我们正在开发一个 IronRuby 项目。有一个 C# WPF 应用程序。我们为该应用程序编写了一个模块。当 IronRuby 中出现错误时,应用程序会显示一个消息框。它只显示错误消息。它没有显示哪个 Ruby 脚本引发了错误。
我们如何让 IronRuby 显示引发错误的 ruby 文件?
【问题讨论】:
标签: error-handling stack-trace ironruby callstack
您好!我们正在开发一个 IronRuby 项目。有一个 C# WPF 应用程序。我们为该应用程序编写了一个模块。当 IronRuby 中出现错误时,应用程序会显示一个消息框。它只显示错误消息。它没有显示哪个 Ruby 脚本引发了错误。
我们如何让 IronRuby 显示引发错误的 ruby 文件?
【问题讨论】:
标签: error-handling stack-trace ironruby callstack
我找到了一个解决方法,你需要像这样用 begin rescue 包装你的代码:
begin
# Write your ruby code here, that can have an error
rescue SyntaxError, NameError => boom
str = "String doesn't compile:\n " + boom
puts str
puts boom.backtrace.join("\n")
rescue StandardError => bang
str = "Error running script: " + bang
puts str
puts bang.backtrace.join("\n")
rescue
puts "Unknown error happened"
end # rescues
似乎Ruby解释器在发生错误时会抛出异常,因此您需要捕获它并将其堆栈跟踪写入消息框。如果你找到其他方法,请写在这里
【讨论】: