抛出错误一般都是与try catch 同时出现的。
① throw new Error(error),这个是创建错误,创造一个错误类型(错误实例对象)抛出;
② throw error,这个是抛出错误。(不建议的写法)
throw 语句的作用是手动中断程序执行,抛出一个错误。
注意,throw语句会中断程序的执行,导致throw语句后的语句无法正常执行
③ throw 可以抛出任何类型的值。
throw可以抛出任何类型的值,不仅仅是new Error() ,即throw new Error(),也就是说,它的参数可以是任何值。
抛出一个数值:throw 42,执行后,输出结果:
throw 42;
运行结果:
抛出一个错误对象:new Error(),执行后,输出结果:
throw new Error('抛出一个错误!')
console.log('throw之后');
运行结果:
这与我们平常写代码,遇到bug时,是一样的。
throw语句属于手动抛出错误,导致程序中断,而后面的语句不再执行。
🚩 throw new Error(error)
var a = 8;
try {
if(a===8){
// 抛出错误
throw new Error("loopTerminates"); //Error要大写
}
} catch(error) {
console.log(error); // 打印出Error对象:Error: loopTerminates
console.log(error.message); // 打印:loopTerminates
}
我们来看看,运行结果:
在抛出的 Error 对象中有一个被广泛支持的属性:name、message。
name:用来存储错误的类型,在 ECMA-262 定义了七种错误类型:Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError。详情见:try-catch语句
message:用来存储错误信息error message,就是你new Error()时候传进去的参数。
参考:https://www.cnblogs.com/jijm123/p/13930951.html
🚩 throw error
var a = 5;
try{
if(a==5){
// 抛出错误
throw "loopTerminates"; // 不建议的写法
}
}catch(e){
console.log(e); // 打印: loopTerminates
console.log(e.message); // 打印:undefined
}
运行结果:
参考资料:
throw Error(‘msg’) 和 throw new Error(‘msg’) 的区别 | 码农参考