像其他语言的try catch可以捕获特定类型错误,比如
try {
..
} catch(MyException1 e) {
..
} catch(MyException2 e2) {}在js中是否存在对应的方案?try {
..
} catch(e) {
if(e是 MyException1 || e是MyException2) {
....
} else {
throw e;//不是期望的exception,则不捕获,重新抛出
}
}
在js中是否只能这样?
try {
..
} catch(MyException1 e) {
..
} catch(MyException2 e2) {}在js中是否存在对应的方案?try {
..
} catch(e) {
if(e是 MyException1 || e是MyException2) {
....
} else {
throw e;//不是期望的exception,则不捕获,重新抛出
}
}
在js中是否只能这样?
◦Error
◦EvalError
◦RangeError
◦ReferenceError
◦SyntaxError
◦TypeError
◦URIError
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...');
}