程序的⾮正常运⾏状态被称为“异常”或“错误”,解释器会为每个错误情形创建并抛出⼀个Error对象,其中包含错误的描述信息。那么如何抛出错误?
在JavaScript中可以使⽤throw语句抛出错误。throw语句⽤来抛出⼀个⽤户⾃定义的异常,当前函数的执⾏将被停⽌(throw之后的语句将不会执⾏),并且控制将被传递到调⽤堆栈中的第⼀个catch块。如果调⽤者函数中没有catch块,程序将会终⽌。1、抛出了⼀个值为字符串的异常
throw \"Error\"; //控制台报错: Uncaught Error
2、抛出了⼀个值为整数13的异常
throw 13; //控制台报错: Uncaught 13
3、抛出了⼀个值为true的异常
throw true; //控制台报错: Uncaught true
4、抛出了⼀个错误对象
throw Error('abc'); //控制台报错: Uncaught Error: abc throw new Error('abc'); //控制台报错: Uncaught Error: abc
5、应⽤举例:提⽰函数调⽤中的错误
function sum(...number){
var isNum = number.every( v => !isNaN(v)); if(isNum){
return eval(number.join(\"+\")); //数组求和 }else{
throw new Error(\"参数必须是数字或数字字符串!\"); }}
console.log(sum(1,2,3)); //6console.log(sum(1,2,'3')); //6
console.log(sum(1,2,'a3')); //报错! Error: 参数必须是数字或数字字符串!
ECMAScript 定义了六种类型的错误:
ReferenceError :找不到对象时
TypeError :错误的使⽤了类型或对象的⽅法时RangeError :使⽤内置对象的⽅法时,参数超范围SyntaxError :语法写错了EvalError :错误的使⽤了EvalURIError :URI错误
除此之外,还可以使⽤Error构造⽅法创建⾃定义的Error对象,并使⽤throw语句抛出该对象。创建错误
//创建⼀个错误
var err1 = Error(\"a is undefined!\");
var err2 = new Error(\"a is undefined!\");console.log(typeof err1); //objectconsole.log(typeof err2); //object
console.log(err1); //输出字符串:'Error: a is undefined!' at test.html:21console.log(err2); //输出字符串:'Error: a is undefined!' at test.html:21
因篇幅问题不能全部显示,请点此查看更多更全内容