Правильная обработка ошибок в узле с использованием try catch - PullRequest
0 голосов
/ 02 ноября 2018

Я новичок в программировании на JavaScript, и мне нужно сделать веб-приложение. 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 {}
}
...