Javascript的六种错误类型
SyntaxError 解析时发生的语法错误
ReferenceError 引用一个未定义的变量
RangeError 当一个值超出有效范围时,一是数组长度为负数,二是数值超出有效范围,三是函数堆栈超过最大值
TypeError 变量或参数不是预期类型,或是调用不存在的对象方法
URIError URI相关函数的参数不正确
EvalError eval执行产生的错误
自定义错误对象
code:
function MyErr(message){}
MyErr.prototype
= new Error();
MyErr.prototype.constructor
= MyErr;
调用:new MyErr(message);
throw 抛出异常
简单处理方法
throw ‘error message’;
针对复杂情况,需要做后续处理,使用自定义异常
function UserError(message) {
this.message = message || “默认信息”;
this.name = “UserError”;
}
UserError.prototype.toString = function (){
return this.name + ‘:
“‘ + this.message + ‘“‘;
}
throw new UserError(“出错了!”);
try…catch…finally…
- try 抛出异常,在catch中捕获之后,代码继续在catch块中执行
- finally 始终会执行,try中的代码抛出异常或return时,先执行finally,然后在再抛出异常或return
- try,catch 中有return , throw语句,先执行finally,如果finally中有return false,就直接返回