Трассировка стека от ошибки JavaScript от therubyracer / v8 в рельсах 3

Я использую JavaScript в приложении rails 3, используя therubyracer и v8

Если что-то пойдет не так, сообщение об ошибке будет отправлено мне по электронной почте через обычный процесс уведомления об исключительной ситуации 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

Если честно, я не буду, если это сработает, но попробуйте

Другие вопросы по тегам