像其他语言的try catch可以捕获特定类型错误,比如
try {
..
} catch(MyException1 e) {
..
} catch(MyException2 e2) {}在js中是否存在对应的方案?try {
..
} catch(e) {
  if(e是 MyException1 || e是MyException2) {
    ....
  } else {
    throw e;//不是期望的exception,则不捕获,重新抛出
  }
}
在js中是否只能这样?

解决方案 »

  1.   

    本帖最后由 net_lover 于 2011-02-13 09:07:09 编辑
      

  2.   

    ECMAScript规范 定义:
     
    ◦Error
    ◦EvalError
    ◦RangeError
    ◦ReferenceError
    ◦SyntaxError
    ◦TypeError
    ◦URIError
      

  3.   

    oyeah,thanks a lot~
    DevideByZeroException = function() {
    };function devide(a, b) {
    if(b === 0) {
    throw new DevideByZeroException();
    }
    return a/b;
    }var r;
    try {
    // throw 'dddd';
    r = devide(1, 0);
    console.info(r);
    } catch(e if e instanceof DevideByZeroException) {
    console.info('target exception caught...');
    } catch(e) {
    console.info('unknown excepion...');
    }