throw
语句用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw
之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个catch块。如果调用者函数中没有catch
块,程序将会终止。
当日常代码逻辑较复杂时可以使用异常快速定位错误,并进行相应处理。
throw
抛出异常,可以是一段字符串、数字、布尔
function test(i) {
if(i === 0) {
throw "i不能等于0";
//throw 777;
//throw true;
}
console.log('后续代码!')
}
test(0);
也可以是一个对象,记录当前报错具体信息,方便快速定位!
throw { errorCode: -1001, errorMessage: "type不能为0~" } //对象类型
throw new Error("type不能为0") //使用Error类创建一个报错信息
try、catch
既然有抛出也要有对应的代码接受,接受后也需要相应的代码处理当前报错。
try...catch
语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。
基础语法:
let num = 0
function test(i) {
if(i === 0) {
throw "i不能等于0";
//throw 777;
//throw true;
}
console.log('后续代码!')
}
try {
//监测抛出的报错信息
test(num)
}catch(e) {
//e为抛出的报错信息
console.log(e)
//当try接受报错后执行
num ++;
test(num)
}
也可以在catch中继续嵌套抛出
let num = 10;
try {
throw num
} catch(e) {
if(e > 5) {
num = 1
}else {
throw e
}
} catch(e) {
num = 1
}
finally
不管是否抛出错误,都执行
try {
throw 10
} catch(e) {
return e
} finally {
console.log('aaa')
}