Error Handling in Axios using `catch()`
    Jun 10, 2020
  
  
  Axios requests are promises, which means they have a then() function for promise chaining, and
a catch() function for handling errors. Below is how you can catch()
an error in Axios.
const err = await axios.get('https://httpbin.org/status/404').
  catch(err => err);
err instanceof Error; // true
err.message; // 'Request failed with status code 404'
Axios' catch() behaves exactly the same as the promise catch() function. So you can use promise chaining, and add a catch() at the
end to handle any errors that occur in the promise chain.
const err = await axios.get('https://httpbin.org/status/200').
  // Will throw a TypeError because the property doesn't exist.
  then(res => res.doesNotExist.throwAnError).
  catch(err => err);
err instanceof TypeError; // true
You can also use catch() to transform the error, just make sure you
rethrow the error afterwards.
let error;
try {
  await axios.get('https://httpbin.org/status/404').catch(err => {
    if (err.response.status === 404) {
      throw new Error(`${err.config.url} not found`);
    }
    throw err;
  });
} catch (err) {
  error = err;
}
error.message; // "https://httpbin.org/status/404 not found"
You can also make Axios transform errors automatically using interceptors.
    Did you find this tutorial useful? Say thanks by starring our repo on GitHub!