2012-11-08 283 views
7

我運行軌道3應用程序中使用therubyracer和V8堆棧跟蹤3

如果出現任何錯誤,該錯誤信息被通過電子郵件通過正常發送到我的內心一些javascript導軌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內部borking我可以公開的JavaScript堆棧跟蹤? (起碼,得到行號)

+0

你有沒有得到過這個解決方案? – andygeers

回答

0

我想你可以使用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 

說實話,我不是這是否會工作,但給它試一試