标记处理后的“未处理”Web工作程序异常

时间:2015-09-21 01:49:35

标签: javascript exception-handling web-worker

我正在尝试测试一些使用Web worker的代码。我想检查错误路径是否有效;即,postMessage处理程序正确地从Web worker中抛出的异常中恢复。

我遇到的问题是传播出Web工作者的异常导致它被视为未处理。例如,它在浏览器的控制台日志中打印并导致我的测试环境(围绕Karma的简单包装)将测试视为失败。

所以,我如何向浏览器/ Karma表明预期会出现一个特定网络工作者的异常,并且不应该被视为未处理?我不希望它打印到控制台,我希望我的测试通过。

我想出的唯一想法是将web worker代码包装在try / catch中,并通过MyClass封送捕获的异常,但这需要丢弃大量信息,因为需要对错误对象进行字符串化(否则为triggers a data clone error)。

1 个答案:

答案 0 :(得分:2)

preventDefault处理程序的错误事件对象调用onError

worker.onError = function(e) {
    e.preventDefault(); // <-- "Hey browser, I handled it!"
    ...
}