错误处理

错误类型
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

你可能感兴趣的:(错误处理)