2012-11-08 19 views
7

Tôi đang chạy một số javascript bên trong một đường ray 3 ứng dụng sử dụng therubyracer và v8Stack trace từ javascript lỗi từ therubyracer/v8 trong đường ray 3

Nếu bất cứ điều gì sai, thông báo lỗi được gửi đến cho tôi qua email thông qua việc thông thường đường ray 3 quá trình thông báo ngoại lệ.

Tuy nhiên, thông báo lỗi tôi nhận lại khá mơ hồ và theo dõi ngăn xếp không tự đi vào tệp javascript. Điều này là dễ hiểu, nhưng làm cho nó khá khó khăn để gỡ lỗi. Dưới đây là ví dụ:

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' 

Có cách nào tôi có thể hiển thị ngăn xếp javascript để khi ngoại lệ được ném để tôi có thể biết dòng bên trong javascript đang borking? (Ít nhất, có số dòng)

+0

Bạn đã bao giờ nhận được giải pháp cho điều này chưa? – andygeers

Trả lời

0

Tôi nghĩ bạn có thể sử dụng lớp lỗi V8, hãy thử làm điều này

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 

Thành thật mà nói, tôi không nếu mà sẽ làm việc nhưng cho nó a try

Các vấn đề liên quan