ECMAScript 定义了六种类型的错误:
ReferenceError :找不到对象时
TypeError :错误的使用了类型或对象的方法时
RangeError :使用内置对象的方法时,参数超范围
SyntaxError :语法写错了
EvalError :错误的使用了Eval
URIError :URI错误
除此之外,还可以使用Error构造方法创建自定义的Error对象,并使用throw语句抛出该对象。
创建错误
//创建一个错误 var err1 = Error("a is undefined!"); var err2 = new Error("a is undefined!"); console.log(typeof err1); //object console.log(typeof err2); //object console.log(err1); //输出字符串:'Error: a is undefined!' at test.html:21 console.log(err2); //输出字符串:'Error: a is undefined!' at test.html:21
抛出错误
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)); //6 console.log(sum(1,2,'3')); //6 console.log(sum(1,2,'a3')); //报错! Error: 参数必须是数字或数字字符串!
以上就是javascript如何抛出错误?的详细内容,更多请关注易知道|edz.cc其它相关文章!