Promise - 03 promise 学习前准备:JS 中的

2020-02-17  本文已影响0人  有情怀的程序猿

JS 中的 error 处理

1: 错误类型:

常见内置类型

console.log(a)

// 在 a 未被声明情况下 会报以下错误:
Uncaught ReferenceError: a is not defined

Uncaught: 未被处理 (没有被try catch)程序到这里不会被继续执行
ReferenceError:  错误类型,引用的变量不存在
"a is not defined" : 是错误信息 error message
let b = null
console.log(b.x)

// 报错信息
Uncaught TypeError: Cannot read property 'x' of null

TypeError: 数据类型不正确的错误
"Cannot read property 'x' of null" :  不能在null 上获取x属性 
// 比如一个递归
function fn () {
fn()
}
fn()

// 执行会报错
Uncaught RangeError: Maximum call stack size exceeded
RangeError:  数据值不再其允许范围之内

const a = """

// 执行会报错
SyntaxError: Invalid or unexpected token
SyntaxError:语法错误
2: 错误处理
try {
  let d 
  console.log(d.xxx)
} catch (error) {
  console.log(error)
  console.log(error.message)
  console.log(error.stack)
}
  console.log('因为错误被捕获所以程序可以继续执行')

// 执行后会打印字符串 text

TypeError: Cannot read property 'xxx' of undefined
    at <anonymous>:3:15

VM11511:6 Cannot read property 'xxx' of undefined

VM11511:7 TypeError: Cannot read property 'xxx' of undefined
    at <anonymous>:3:15

因为错误被捕获所以程序可以继续执行
function action (v) {
  if (v) {
  console.log('运行正常')
} else {
  throw new Error('运行报错,抛出异常')
  }
}

try{
  action(false)
}catch (e) {
  alert(e.message)
}


// 运行程序
Uncaught Error: 运行报错,抛出异常

3: 错误对象

message属性:错误相关信息
stack 属性:函数调用栈记录信息

上一篇下一篇

猜你喜欢

热点阅读