在异步函数上将 catch 上的异常重新抛出到上层
Re-throwing exception on catch to upper level on async function
在异步函数中向上层抛出错误
这个
async create(body: NewDevice, firstTry = true): Promise<RepresentationalDevice> {
try {
return await this.dataAccess.getAccessToken()
} catch (error) {
throw error
}
}
对比这个
async create(body: NewDevice, firstTry = true): Promise<RepresentationalDevice> {
return await this.dataAccess.getAccessToken()
}
我的意思是在上层最后我必须捕获错误,并且捕获上根本没有任何修改
这两种方法是否相同?我可以使用第二种方法而不会出现错误处理问题吗?
这与异步函数无关。捕获一个错误只是为了重新抛出它与一开始就没有捕获它是一样的。即
try {
foo();
} catch(e) {
throw e;
}
和
foo();
基本上是等价的,除了堆栈跟踪可能不同(因为在第一种情况下,错误是在不同的位置引发的)。
在异步函数中向上层抛出错误
这个
async create(body: NewDevice, firstTry = true): Promise<RepresentationalDevice> {
try {
return await this.dataAccess.getAccessToken()
} catch (error) {
throw error
}
}
对比这个
async create(body: NewDevice, firstTry = true): Promise<RepresentationalDevice> {
return await this.dataAccess.getAccessToken()
}
我的意思是在上层最后我必须捕获错误,并且捕获上根本没有任何修改
这两种方法是否相同?我可以使用第二种方法而不会出现错误处理问题吗?
这与异步函数无关。捕获一个错误只是为了重新抛出它与一开始就没有捕获它是一样的。即
try {
foo();
} catch(e) {
throw e;
}
和
foo();
基本上是等价的,除了堆栈跟踪可能不同(因为在第一种情况下,错误是在不同的位置引发的)。