ECMA标准定义了下列7种错误类型:
Error
基类型,其他所有错误类型都继承自该类型,实际出现情况很少,大多抛出的是开发人员自定义错误;EvalError
会在使用Eval()函数发生异常时抛出,例如没有把Eval()当做函数使用:new eval(); eval = foo; //以上都会抛出EvalErrorRangeError
在数值超出响应范围时触发,例如:var item1 = new Array(-20); var item2 = new Array(Number.MAX_VALUE)TypeError
在变量中保存不存在的类型或访问不存在的方法,都会抛出这类型错误:var a = new 10; console.log(1 in 10);SyntaxError
单纯的语法错误,出现频率很高ReferenceError
找不到对象,访问不存在的变量时抛出此类错误URIError
使用encodeURI()或deocdeURI(), 但URI格式不正确时导致此类错误
try-catch语句作为js种处理异常的标准方式
|
|
适合处理我们无法控制的错误,例如函数传参类型不对,需要throw 错误信息
throw抛出自定义错误:
|
|
也可模拟类似的浏览器错误:12throw new SyntaxError(“custom syntax error!”);//上述浏览器错误都可以throw出来
error事件
任何没有通过try-catch异常处理的错误都会触发window对象的error事件。
指定onerror事件处理程序,必须使用DOM0级事件,没有遵循DOM2级事件的标准格式12Window.onerror = function(message, url, line){ }