// 常见的内置错误
// 1.ReferenceError:应用的变量不存在
// console.log(a) //ReferenceError:a is not defined
// console.log('------') //没有捕获error,下面的代码不会执行
// 2.TypeError:数据类型不正确的错误
// let b
// console.log(b.xxx) //TypeError:Cannot read propery 'xxx' of underfined
//b={}
//b.xxx() //TypeError: b.xx is not a function
// 3.RengeError: 数据值不在其所允许的范围内
// function fn(){
// fn()
// }
// fn() //RangeError:Maximum call stack size exceeded
//3. SyntaxError:语法错误
// const c="""" //SyntaxError:Unexpected string
// 1.错误处理
// 捕获错误:try...catch
// 抛出错误
// 2.错误对象
// message属性:错误相关信息
// stack属性:属性调用栈记录信息
// 3.错误的处理(捕获与抛出)
function something(){
if(Date.now()%2==1){
console.log('当前时间为奇数,可以执行任务')
}else{ //如果时间是偶数抛出异常,由调用来处理
throw new Error('当时时间为偶数无法执行任务')
}
}
// 捕获处理异常
try{
something()
}catch(error){
alert(error.message)
}