Javascript 使用.catch而不是try/catch块
在发送如下请求时,不要使用传统的Javascript 使用.catch而不是try/catch块,javascript,typescript,error-handling,Javascript,Typescript,Error Handling,在发送如下请求时,不要使用传统的try/catch来处理错误 let体; 试一试{ const response=等待发送请求( “职位”, “/api/AccountApi/ReturnGetStatus”, JSON.stringify(返回参数), 未定义, 标题 ); body=response.body; }捕获(错误){ 日志(“错误”,“发送请求时出错”,{error}); 抛出createError(“发生错误”,DefaultErrors.API\u error); } 我在
try/catch
来处理错误
let体;
试一试{
const response=等待发送请求(
“职位”,
“/api/AccountApi/ReturnGetStatus”,
JSON.stringify(返回参数),
未定义,
标题
);
body=response.body;
}捕获(错误){
日志(“错误”,“发送请求时出错”,{error});
抛出createError(“发生错误”,DefaultErrors.API\u error);
}
我在想,如果可以像下面那样重写错误处理,是否可以获得相同的结果
const response=等待发送请求(
“职位”,
“/api/AccountApi/ReturnGetStatus”,
JSON.stringify(返回参数),
未定义,
标题
).catch((错误:任意)=>{
日志(“错误”,“发送请求时出错”{err});
抛出createError(“发生错误”,DefaultErrors.API\u error);
});
上面的代码块是否能够处理未定义的错误以及可能的JSON.parse
错误?您可以同时使用这两种方法
try {
await sendRequest()
} catch (err) {
// do something
}
或
捕捉错误
下面是一个简单的示例,您可以将其粘贴到以进行尝试
const sendRequest = (str: string) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('get response');
reject('error message');
}, 2000)
})
}
const test1 = async ()=> {
try{
await sendRequest('data');
} catch (err) {
// will print 'err===> error message'
console.log('err===>', err)
}
}
const test2 = async ()=> {
sendRequest('data').catch(err => {
// will print 'err===> error message'
console.log('err=====>', err)
})
}
test1();
test2();
test1()和test2()都将捕获错误 两者都可以使用
try {
await sendRequest()
} catch (err) {
// do something
}
或
捕捉错误
下面是一个简单的示例,您可以将其粘贴到以进行尝试
const sendRequest = (str: string) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('get response');
reject('error message');
}, 2000)
})
}
const test1 = async ()=> {
try{
await sendRequest('data');
} catch (err) {
// will print 'err===> error message'
console.log('err===>', err)
}
}
const test2 = async ()=> {
sendRequest('data').catch(err => {
// will print 'err===> error message'
console.log('err=====>', err)
})
}
test1();
test2();
test1()和test2()都将捕获错误 不,错误捕获不是这样工作的。不,错误捕获不是这样工作的。