JavaScript: gestione degli errori nelle funzioni con l'oggetto Error

JavaScript: gestione degli errori nelle funzioni con l'oggetto Error

In JavaScript possiamo implementare una gestione alternativa degli errori nelle funzioni utilizzando i loro valori di ritorno.

Solitamente utilizziamo un valore predefinito o solleviamo un'eccezione al verificarsi di un errore.


'use strict';

const myFunctionWithThrow = dataObject => {
    if(typeof dataObject !== 'object') {
        throw new Error('Invalid argument.');
    }
};

const myFunctionWithValue = dataObject => {
    if(typeof dataObject !== 'object') {
        return null;
    }
};

Nel primo caso, l'esecuzione del codice viene interrotta, e nel secondo caso abbiamo un valore null che di fatto non può essere riutilizzato al di fuori della verifica che effettuiamo quando eseguiamo la funzione e che soprattutto non contiene alcuna informazione.

Possiamo invece usare l'oggetto Error in modo diverso: invece di sollevare un'eccezione e bloccare tutto il codice che segue, possiamo usarlo come valore di ritorno della funzione.


'use strict';

const myFunction = dataObject => {
    if(typeof dataObject !== 'object') {
        return new Error('Invalid argument.');
    }
};

Quindi possiamo effettuare la seguente verifica:


'use strict';

const result = myFunction();

if(result instanceof Error) {
    // Gestione dell'errore
}

In questo modo non blocchiamo il flusso del codice e abbiamo a disposizione un valore semantico che possiamo riutilizzare, ad esempio nel nostro sistema di logging.

Torna su