2017-01-31 63 views
3

Scala的throw预计Throwable,其中js.Error不是。在Scala.js中抛出原生JS异常

我需要重新抛出一个由第三方JS库提供给我的JS错误。然后,所述lib将再次捕捉到重新抛出的错误并对其做出一些处理。

我可以在JS中编写一行npm模块:module.exports = function (e) { throw e; },并将其添加到我的npmDependencies,但我想知道是否有更好的解决方案。

回答

4

你必须包裹JS错误在js.JavaScriptException

import scala.scalajs.js 

throw js.JavaScriptException(e) 
+0

谢谢,不知何故,我错过了这一点。我看到Scala.js在抛出这样一个异常之前调用了'unwrapJavaScriptException',所以原来的JS错误将被重新抛出,这正是我所需要的。我应该阅读更多Scala.js消息来源... – Nikita