Introduzione alle eccezioni in JavaScript
Ora considereremo le eccezioni in JavaScript. Per cominciare, farò un'introduzione, con esempi di eccezioni in generale per qualsiasi linguaggio di programmazione, e poi vedremo come funziona in JavaScript.
Quando scriviamo i nostri programmi, implicitamente contiamo sul fatto che tutti i meccanismi tecnico-programmatici da noi utilizzati funzionino correttamente.
Tuttavia, non è sempre così. Durante il trasferimento dei dati attraverso la rete, la connessione si interrompe e i dati ci arrivano in una forma non corretta, o non arrivano affatto. Durante la scrittura di un file, si scopre che lo spazio allocato per noi sul disco rigido è finito, e il file non può essere scritto. Durante la lettura di un file, si scopre che un tale file non esiste e non abbiamo da dove leggere. Durante la stampa dei dati sulla stampante, si verifica un'interruzione del cavo che collega la stampante al computer.
Tutte le situazioni descritte hanno un'essenza comune: si verifica un certo guasto, che porta all'impossibilità o all'insensatezza del completamento dell'operazione pianificata.
Ci sono anche situazioni in cui si verifica un certo errore, che non è un guasto. Ad esempio, chiedi all'utente la sua email, e lui inserisce l'email in un formato non corretto. È chiaro che il nostro programma non può continuare a elaborare l'email, poiché non è corretta. Ma, tuttavia, questa non è una situazione eccezionale. Il nostro programma può sistemare la situazione da solo: visualizzerà un messaggio di errore e l'utente ripeterà l'inserimento.
In realtà, la differenza tra un guasto e un non guasto è piuttosto sfumata. Un evento che un programma può interpretare come un'eccezione, un altro programma può interpretarlo come un certo errore con cui può gestire.
Il criterio qui è il seguente: se all'insorgere di un problema il tuo programma può continuare a eseguire ciò per cui è destinato, allora non è un'eccezione, ma se non può - allora sì, questa è un'eccezione.
Ad esempio, abbiamo un programma che deve chiedere l'email dell'utente. Se l'utente ha inserito l'email in un formato non corretto - questo non è un guasto. Questo è un problema atteso e il nostro programma chiederà all'utente l'email tante volte, finché non la inserisce correttamente.
Supponiamo che il nostro programma, che chiede l'email, debba anche inviare questa email corretta tramite Internet. E si scopre che Internet non funziona. Questo è già un problema: il programma non sarà in alcun modo in grado di inviare i dati tramite Internet, se Internet non funziona. Il programma, tuttavia, può continuare la sua esecuzione: può visualizzare le informazioni sul problema, ripetere il tentativo di invio dopo un certo tempo, e così via. Ma queste azioni non sono esattamente ciò per cui il programma era destinato, poiché l'azione principale - l'invio dell'email - il programma non sarà in grado di farlo.
Molto spesso, il fatto che una situazione sia eccezionale o meno, dipende dal linguaggio di programmazione. In molti linguaggi, se improvvisamente avviene una divisione per zero - questa è considerata un'eccezione (poiché non si può dividere per zero), ma in JavaScript - non è considerata tale (in JavaScript si può dividere per zero).