JavaScript:如何处理除错误产生的错误之外的所有错误

时间:2017-06-08 10:24:45

标签: javascript exception error-handling exception-handling

考虑代码示例:

const someThing = { f: function() {} }
try {
    something.f() // there is a mistype
} catch(e) {
    // some error handling specific to function f
}

所以,我想不处理我的错误类型可能产生的所有错误:ReferenceErrorTypeError,而且我也不想处理AssertionError

有没有惯用的方法呢?

1 个答案:

答案 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);
}




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