2017-01-31 5 views
3

Scala's throw ожидает, что Throwable, который js.Error нет.Бросить собственное исключение JS в Scala.js

Мне нужно повторно выбросить ошибку JS, предоставленную мне сторонним JS lib. Затем упомянутая lib поймает повторную ошибку и сделает что-то с ней.

Я могу написать однострочный модуль npm в JS: module.exports = function (e) { throw e; } и добавить его в мой npmDependencies, но мне было интересно, есть ли лучшее решение для этого.

ответ

4

Вы должны обернуть ошибку JS в js.JavaScriptException:

import scala.scalajs.js 

throw js.JavaScriptException(e) 
+0

Спасибо, как-то я пропустил это. Я вижу, что Scala.js называет 'unwrapJavaScriptException' перед' throw'-ing таким исключением, поэтому исходная ошибка JS будет повторно выбрана, и это именно то, что мне нужно. Я должен прочитать больше источников Scala.js ... – Nikita