2017-01-31 101 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