Documentazione
Torna al sito web >

try...catch...finally (JScript)

La frase "try...catch...finally" permette di reagire agli errori in modo strutturato.

Che può causare un errore di runtime, modifica un'istruzione try-catch. Se si verifica un errore di runtime all'interno del blocco di prova, questo non viene visualizzato dal sistema di runtime, ma viene ramificato nel blocco di catch. Quest'ultimo può ora verificare l'esatta causa dell'errore e reagire.

Il blocco finally viene sempre eseguito se esiste. Non importa se si è verificato o meno un errore nel blocco di prova. L'unica eccezione è quando si verifica un errore, ma non esiste alcun blocco di catch. In questo caso, viene emesso un normale errore di runtime.

Syntax

try 
  {tryIstruzione}
catch(Variabile)
  {catchIstruzione}
finally
  {finallyIstruzione}

Esempio 1

Un esempio di try...catch.

var
  Ieri, Domani, Ogg;

Ogg=3;

try
  {
    Ieri=Ogg-1;
    Domaini=Oggi+1;
  }
catch (e)
  {
    Resultato="Errore nell'assegnazione! Ragione: "+e
  }

In questo esempio, viene fatta un'assegnazione "Domani=Oggi+1" nel blocco di try. Tuttavia, a causa di un errore di battitura, la variabile "Oggi" non è definita. Normalmente, in questo caso, viene segnalato un errore dell'oggetto. Tuttavia, poiché la dichiarazione viene eseguita in un blocco di try, l'esecuzione si dirama verso il blocco di catch. Alla variabile di risultato viene assegnato un testo di errore.

Il testo originale dell'errore è contenuto nella variabile "e" e viene aggiunto alla variabile di risultato.

Poiché l'errore nel blocco di prova si è verificato solo nella seconda riga del blocco, la riga "Ieri = Ogg-1" viene ancora eseguita correttamente.

Esempio 2

Un esempio di try...catch..finally.

var
  Ieri, Domani, Ogg;

Ogg=3;

try
  {
    Ieri=Ogg-1;
    Domaini=Oggi+1;
  }
catch (e)
  {
    Resultato="Errore nell'assegnazione! Ragione: "+e
  }
finally
  {
    Ogg=1;
  }

Si tratta, ad esempio, di un'estensione. Alla fine della try... catch il blocco finally viene eseguito. In questo modo la variabile "Oggi" viene comunque impostata sul valore 1. Iindipendentemente dal fatto che si sia verificato o meno un errore nel blocco di try.

Esempio 3

Un esempio di try...finally.

var
   Ieri, Domani, Ogg;

Ogg=3;

try
  {
    Ieri=Ogg-1;
    Domaini=Oggi+1;
  }
finally
  {
    Ogg=1;
  }

Il blocco finally non viene eseguito qui come unica eccezione. Poiché si verifica un errore nel blocco di try, ma non esiste alcun blocco di catch, lo script viene terminato direttamente nel punto in cui si è verificato l'errore e viene visualizzato un errore di runtime.