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,就直接返回