Gli errori vengono generati dal motore e le eccezioni vengono generate dallo sviluppatore. Ma cosa significa esattamente? In JavaScript, tutte le eccezioni sono semplicemente oggetti. Mentre la maggior parte delle eccezioni sono implementazioni della classe di errore globale, qualsiasi vecchio oggetto può essere lanciato. Con questo in mente, ci sono due modi per lanciare un’eccezione: direttamente tramite un oggetto Error e attraverso un oggetto personalizzato.,
Eccezioni generiche
Mentre la classe di errore incorporata è abbastanza ben definita-incluse cose come il nome del file, il numero di riga e la traccia dello stack per citarne alcuni—quando si tratta di esso, la cosa più importante da prendere nota è il messaggio. Il primo—e spesso unico-parametro da passare durante l’istanza di errore, il messaggio è un errore leggibile che spesso può essere correlato direttamente all’utente finale. Lanciare un’eccezione generica è quasi semplice come sembra., Tutto ciò che serve è istanziare un oggetto exception-con il primo parametro del costruttore Error che è il messaggio di errore-e poi it “throw” it.
throw new Error('Exception message');
errore.codice vs errore.messaggio
È importante notare qui che, mentre il messaggio di errore è i dati di errore leggibili dall’uomo, Nodo.js fornisce anche un codice di errore che identifica il tipo di errore che viene generato. Questo valore è utile in quanto consente di adattarsi a livello di codice agli errori che possono essere generati, indipendentemente dal messaggio contenuto nell’errore.,
Mentre i codici di errore vengono generalmente utilizzati per errori di sistema, quando si creano errori personalizzati estendendo la classe di errore (vedere Eccezioni personalizzate di seguito per maggiori dettagli), è possibile definire un codice personalizzato e utilizzarlo per definizioni di errore più strutturate.
Eccezioni personalizzate
Mentre è possibile lanciare qualsiasi oggetto, la migliore pratica è estendere l’oggetto Error con una nuova classe. Negli ambienti che lo supportano, ciò consente di includere funzionalità come la traccia automatica dello stack nella risposta alle eccezioni, che può essere cruciale quando si tratta di diagnosticare i problemi in seguito.,
Con un oggetto eccezione personalizzato creato, tutto ciò che dobbiamo fare è buttare come qualsiasi altro errore:
throw new CustomException('Exception message');
un Altro grande vantaggio di estendere l’oggetto del messaggio di Errore, piuttosto che buttare un errore generico, è che i metadati aggiuntivi possono essere inclusi con l’errore e recuperare in seguito. Questo può essere incredibilmente prezioso nel debug e nella segnalazione degli errori, poiché a volte un messaggio di testo semplice non è sufficiente. Ad esempio, è possibile includere i valori delle variabili locali o dello stato che possono aiutare a eseguire il debug del problema.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
Al di fuori dei dati inclusi nell’oggetto Error, quando si utilizza il notificatore Rollbar per JavaScript, nel report vengono inclusi anche dati aggiuntivi. Ciò include informazioni contestuali come il browser e l’utente.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
Scrivendo sulla console
In JavaScript, la console è dove possono essere trovati tutti i log (maggiori informazioni su Dove vengono registrati gli errori JavaScript?). Per fortuna, in realtà la scrittura di dati sulla console è incredibilmente semplice. Per fare ciò, chiama semplicemente la console.,metodo log (), con il messaggio che si desidera scrivere nel registro.
console.log("Top level");
Leave a Reply