我正在尝试扩展使用try / catch的第三方函数,因此如果出现错误,我可以在内部进行记录。我似乎无法扩展或原型化函数来记录错误,有没有人有这方面的例子?
googletag.cmd.push = function(a) {
try {
for (var b = sa(), c = 0; c < arguments.length; ++c) try {
ea(arguments[c]) && (arguments[c](), this.j++)
} catch (d) {
this.l++, b.error(Ta(String(d.message)))
}
b.info(Ua(String(this.j), String(this.l)));
return this.j
} catch (d) {
// custom error logging.
O(1001, d)
}
}
答案 0 :(得分:0)
纯粹通过javascript这是不可行的。
最简单的解决方案是使用自定义实现覆盖该函数,除了日志记录语句之外,该函数是相同的。
答案 1 :(得分:0)
如果该功能没有抑制错误并且它正在冒出功能,你应该可以捕获它。
import test from 'ava';
import sinon from 'sinon';
import passwordModule from './password';
test('verify - should verify password', function * (t) {
const password = 'test-password';
const salt = null;
const hash = 'my-hash';
const hashStub = sinon.stub(passwordModule, 'hash', (password, salt) => Promise.resolve({hash, salt}));
const verified = yield passwordModule.verify(password, hash, salt);
t.true(verified);
hashStub.restore();
});