使用try catch正确处理节点中的错误

时间:2018-11-02 05:32:36

标签: javascript node.js error-handling async-await try-catch

我是javascript编程的新手,我需要制作一个Web应用程序。 Node.js将用作js运行时环境。为了最大程度地减少应用开发过程中调试所需的时间,我想实施一个健壮的错误处理方案。但是,由于我的背景有限,我不确定我所实施的是最佳实践还是足够。因此,任何反馈都将被接受。

该函数是异步的,将使用catch来检测操作过程中是否发生任何错误。 try-catch语句将用于捕获任何错误。这样做是为了允许从功能中识别单个错误。我的目的是将错误传播到将在最高级别的catch语句中处理该错误的调用函数(在我的情况下,该日志将被记录,*最终将改变)。有任何反馈意见吗?

create: async function(req, res) {
  let data = JSON.parse(req.body.data);
  let result;
  let request_body;
  let sub_networks_lora;
  try {
    request_body = sub_network_api_request_data(data, 1);
    result = await lora_app_server.create_applications(request_body)
      .catch(err => {
        //Error updating application on lora app server
        throw err;
      });
    await db_sub_networks.create_sub_network(result.data.id, data.sub_network_name, data.network_id)
      .catch(err => {
        throw err;
        //Error creating sub network in database 
      });
    sub_networks_lora = await get_sub_networks()
      .catch(err => {
        throw err;
        //Error getting networks from lora app server
      })
    sub_networks_lora = JSON.stringify(sub_networks_lora);
    res.status(200).send({
      sub_networks_lora
    });
  } catch (err) {
    console.log(err)
  } finally {}
}

0 个答案:

没有答案