考虑代码示例:
const someThing = { f: function() {} }
try {
something.f() // there is a mistype
} catch(e) {
// some error handling specific to function f
}
所以,我想不处理我的错误类型可能产生的所有错误:ReferenceError
,TypeError
,而且我也不想处理AssertionError
。
有没有惯用的方法呢?
答案 0 :(得分:1)
你可以这样做:
var ignoredErrors = [TypeError, ReferenceError];
function handleError (e) {
for (var index in ignoredErrors) {
if (e instanceof ignoredErrors[index]) {
return;
}
}
console.log('A "real" error occured:', e.message);
}
const someThing = { f: function() {} }
try {
something.f(); // ReferenceError: ignored
} catch(e) {
handleError(e);
}
try {
eval('()'); // SyntaxError: not ignored
} catch(e) {
handleError(e);
}

但你真的想拥有它吗?你想忽略你的错误而不是解决程序中的错误吗?