美文网首页
错误处理

错误处理

作者: _无味 | 来源:发表于2018-08-18 14:44 被阅读6次

    错误类型
    JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象

    SyntaxError
    是解析代码时发生的语法错误

    ReferenceError
    ReferenceError对象是引用一个不存在的变量时发生的错误。
    另一种触发场景是,将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值。

    RangeError
    RangeError对象是一个值超出有效范围时发生的错误。

    TypeError对象是变量或参数不是预期类型时发生的错误。

    throw语句
    throw语句的作用是手动中断程序执行,抛出一个错误。
    遇见大错就中断,不往下执行
    new Error是一个对象,可以创建规则.在控制台显示

    var x=-1
    if (x < 0) {
        throw new Error('x 必须为正数');
    }
    //uncaught Error : x 必须为正数
    console.log(1)      //遇见抛出的错误下面的代码也不会运行
            
    // 抛出一个字符串              
    throw 'Error!';
    // Uncaught Error!
    
    // 抛出一个数值
    throw 42;
    // Uncaught 42
            
    // 抛出一个布尔值
    throw true;
    // Uncaught true
            
    // 抛出一个对象
    throw {
        toString: function () {
            return 'Error!';
    }
    };
    // Uncaught {toString: ƒ}
    

    try..catch
    一旦发生错误,程序就中止执行了。
    JavaScript 提供了try...catch结构,允许对错误进行处理,选择是否往下执行。
    可以用来尝试自己写的代码是否有错误 跟if规矩一样
    try {
    //想判断的代码
    }catch(e){
    console.log(e.message);
    //如果不出错就不会执行catch,如果出错就会执行catch,把错误
    //的存储带参数里,message是错误的一个属性,代表着错误的信息
    }
    try代码块抛出错误,JavaScript 引擎就立即把代码的执行,转到catch代码
    块,或者说错误被catch代码块捕获了。catch接受一个参数,表示try代码块抛出的值。

    inally
    try...catch结构允许在最后添加一个finally代码块,
    表示不管是否出现错误,都必需在最后运行的语句。

    function f(){
        try{
            console.log(0)
            throw 'bug'
        }catch(e){
            console.log(1)
            return true
            console.log(2)
        }finally{
            console.log(3)
            return false
            console.log(4)
        }
        console.log(5)
    }
    f()
    console.log(f())                //0,1,3
    

    相关文章

      网友评论

          本文标题:错误处理

          本文链接:https://www.haomeiwen.com/subject/oqjfiftx.html