Javascript 如何在控制台中捕获并记录基准代码引发的错误?

Javascript 如何在控制台中捕获并记录基准代码引发的错误?,javascript,benchmark.js,Javascript,Benchmark.js,是否有任何方法可以获得被评估代码抛出的原始错误?我有一个简单的基准测试套件类似于下面的一个,没有什么特别的 var suite = new Benchmark.Suite; ... suite.add('Collection Add', function () { collection.add(someArguments); }) .on('cycle', function (event) { console.log(String(eve

是否有任何方法可以获得被评估代码抛出的原始错误?我有一个简单的基准测试套件类似于下面的一个,没有什么特别的

var suite = new Benchmark.Suite;
    ...

suite.add('Collection Add', function () {
        collection.add(someArguments);
    })
    .on('cycle', function (event) {
        console.log(String(event.target));
    })
    .on('error', function (event) {
        console.log(event);
    })
    .run({'async': true});
被基准测试的函数在接收到不正确的参数时抛出错误。在设置基准时,这种情况经常发生

我的问题是,我没有得到基准代码引发的异常,而是得到了一些其他错误,这让我无法知道测试代码失败的原因。我可以试着在套件之前运行一次,只是为了检查抛出的错误,但是我发现这是一个耗时的不便之处

error: ReferenceError: collection is not defined at Benchmark.define.amd.uid14507863...

我认为您应该使用回调函数来处理错误。在
之后添加
控制台.log
.run()
函数:

.catch(function(err) { 
    console.log(err);
});

我不确定我是否做对了:
.run({'async':true}).catch(函数(err){console.log(err)})。抛出另一个错误:
suite.add(…).add(…).add(…).on(…).on(…).run(…).catch不是一个函数
看起来它不是benchmark.js api的一部分。我认为benchmark.js库没有使用catch这个回调函数。您应该参考他们的文档,其中一定有一些错误处理回调函数可用