Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用.catch而不是try/catch块_Javascript_Typescript_Error Handling - Fatal编程技术网

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()都将捕获错误

不,错误捕获不是这样工作的。不,错误捕获不是这样工作的。