1、创建异常
使用throw 关键字创建异常
throw value
一旦javascript 执行到此行,则常规的程序流会被停止,且控制会被交给最近的异常处理程序。
通常,在客户端代码中,value可以是任何javascript值(包括字符串、数字、对象)。在node.js中,我们不抛出字符串,而仅抛出error对象。
2、错误对象
错误对象是Error对象的实例,或着继承自Error类(由Error核心模块提供):
throw new Error('错误信息')
或者
class NotEnoughCoffeeError extends Error {
//...
}
throw new NotEnoughCoffeeError()
3、处理异常
异常处理程序是try/catch语句。try 块中包含的代码行中引发的任何异常都会在相应的catch块中处理。
try {
//代码行
} catch (e) {}
在此示例中,e是异常值,可以添加多个处理程序,它们可以捕获各种错误。
4、Promise的异常
使用promise可以链接不同的操作,并在最后处理错误。
doSomething01()
.then(doSomething02)
.then(doSomething03)
.catch(err => console.error(err))
我们并不知道错误在哪里,但是我们可以处理所调用的每一个函数中(doSomethingX)的错误,并且在错误处理程序内部抛出新的错误,此即为调用外部的catch处理程序。
const doSomething01 = () => {
//...
try {
//...
} catch (err) {
//... 在本地处理
throw new Error(err.message)
}
//...
}
为了能够在本地(而不是在调用的函数中)处理错误,则可以断开链条,
在每个then() 函数中创建函数并处理异常:
doSomething01()
.then(() => {
return doSomething02().catch(err => {
//处理错误
throw err //打断链条
})
})
.then(() => {
return doSomething02().catch(err => {
//处理错误
throw err //打断链条
})
})
.catch(err => console.error(err))
先总结道这里哈,敬请期待下期。
今日份寄语:
以前总认为坚持会让我们变强大,但是长大后才发现,让我们强大的,是放下。