考虑一个代码示例:
const someThing = { f: function() {} }
try {
something.f() // there is a mistype
} catch(e) {
// some error handling specific to function f
}
所以,我不想处理由于我的错误输入而可能产生的所有错误,例如:ReferenceError
、TypeError
,而且我也不想处理断言错误
。
有什么惯用的方法可以做到这一点吗?
最佳答案
你可以这样做:
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);
}
但是你真的想拥有它吗?您想忽略错误而不是解决程序中的错误吗?
关于JavaScript:如何处理除错误输入之外的所有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44433134/