in Architettura Software

Creare un error handler interceptor con Axios

Nel post precedente abbiamo analizzato gli interceptors, in particolare abbiamo creato un interceptor per gestire le response ed un interceptor per gestire le request.

In questo post vedremo come creare un interceptor per la gestione degli errori.

Questo tipo di interceptor viene spesso utilizzato per la gestione centralizzata degli errori, soprattutto quando siamo in presenza di chiamate con risposte differenti.

Utilizzando una gestione centralizzata degli errori, possiamo pensare di unificare il tutto e gestire il tutto in maniera piu strutturata.

const axios = require('axios');
axios.interceptors.response.use(
  res => res,
  err => {
    throw new Error(err.response.data.message);
  }
)

Questo interceptor è agganciato sulla response e genera un nuovo error con all’interno il messaggio della response.

Tutte le response che generanno un errore, ritorneranno questo tipo di messaggio di errore.

Abbiamo quindi generato intercettato il messaggio di errore della response e lo stiamo restituendo.

Per esempio la chiamata

const err = await axios.get('http://mysite.com/notfound').catch(err => err);

nel caso di errore consentira di accedere alla variabile err, che conterrà al suo interno il message (err.message).