Обработка ошибок: лучшие практики?

Я часто сталкиваюсь с необходимостью обработать несколько вызовов api, и я не совсем уверен в том, какова наилучшая практика обработки ошибок.

Ниже приведен пример шаблона, который я часто пишу — обращение с бросками как с возвратами и разрешение ошибкам «всплывать».

В целом, это работает, но я не уверен, есть ли лучший способ их обработки. Или какие-то стандартные методы.

Любые советы или мысли будут приняты с благодарностью!

async function someApiReq(id) {
  try {
    const resp = fetch('https://foo.com/api' { body: JSON.stringify(id) });
    if(!resp.ok) throw resp;
    return await resp.json().data
  } catch(e) {
    if(e instanceof ApiError) {
      throw e.apiMessage
    }
    throw e
  }
}

async function someOtherApiReq(id) {
  try {
    const resp = fetch('https://bar.com/api' { body: JSON.stringify(id) });
    if(!resp.ok) throw resp;
    return await resp.json().data
  } catch(e) {
    throw e
  }
}

(async () => {
  try {
    const id = 1;
    const data = someApiReq(id);
    const otherData = someOtherApiReq(data.id);
    console.log(otherData);
  } catch(e) {
    console.error(e)
  }
})();
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий