来自rails 3中therubyracer / v8的javascript错误的堆栈跟踪
Posted
技术标签:
【中文标题】来自rails 3中therubyracer / v8的javascript错误的堆栈跟踪【英文标题】:Stack trace from javascript error from therubyracer / v8 in rails 3 【发布时间】:2012-10-29 00:42:00 【问题描述】:我正在使用 therubyracer 和 v8 在 rails 3 应用程序中运行一些 javascript
如果出现任何问题,错误消息会通过通常的 rails 3 异常通知流程通过电子邮件发送给我。
但是,我返回的错误消息非常模糊,堆栈跟踪不会进入 javascript 文件本身。这是可以理解的,但是很难调试。这是一个例子:
V8::JSError: Cannot read property '0' of undefined
backtrace:
lib/libraryname.rb:32:in `function_that_calls_v8'
lib/libraryname.rb:18:in `fetch_and_update'
app/models/listing.rb:34:in `fetch'
有没有一种方法可以公开 javascript 堆栈跟踪,以便在引发异常时可以判断 javascript 中的哪一行出现问题? (至少,得到行号)
【问题讨论】:
你有没有解决这个问题? 【参考方案1】:我认为你可以使用 V8 错误类,尝试这样做
begin
#normal V8 code
rescue V8::Error => error
error.value #the JavaScript value passed to the `throw` statement
error.cause #the underlying error (if any) that triggered this error to be raised
error.javascript_backtrace #the complete JavaScript stack at the point this error was thrown
#use these values and send them to the exception system (however that happenS)
end
说实话,我不认为这会奏效,但试试看
【讨论】:
以上是关于来自rails 3中therubyracer / v8的javascript错误的堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章
运行 Rails 服务器时出错 - 找不到符号 - therubyracer
Rails 4.0.0 Ruby 2.0 therubyracer gem 安装错误
为什么gem`therubyracer`默认在Gemfile中注释掉了?
使用 Ruby On Rails 4.2.5.1 我可以 gem install therubyracer 但捆绑包在 OS X 10.11.1 上失败