Istruzione Try...Catch...finally
Aggiornamento: novembre 2007
Implementa la gestione degli errori per JScript.
try {
[tryStatements]
} catch(exception) {
[catchStatements]
} finally {
[finallyStatements]}
Argomenti
tryStatements
Facoltativo. Istruzioni in cui può verificarsi un errore.exception
Obbligatorio. Qualsiasi nome di variabile. Il valore iniziale di exception corrisponde al valore dell'errore generato.catchStatements
Facoltativo. Istruzioni di gestione degli errori generati nel blocco tryStatements associato.finallyStatements
Facoltativo. Istruzioni che vengono eseguite in modo non condizionale al termine dell'elaborazione di tutti gli altri errori.
Note
L'istruzione try...catch...finally consente di gestire parte o tutti i possibili errori che potrebbero verificarsi in un blocco di codice specifico, senza interrompere l'esecuzione del programma. In caso si verifichino errori la cui gestione non è stata prevista dal programmatore, JScript fornisce all'utente il normale messaggio di errore, come se non vi fosse alcuna routine di gestione degli errori.
TryStatements contiene il codice in cui potrebbe verificarsi un errore, mentre catchStatements contiene il codice per la gestione di ogni errore che si verifica. In caso di errore in tryStatements, il controllo del programma viene passato a catchStatements per l'elaborazione. Il valore iniziale di exception è il valore dell'errore verificatosi in tryStatements. Se non si verifica alcun errore, catchStatements non verrà mai eseguito.
Se non è possibile gestire l'errore nelle catchStatements associate alle tryStatements in cui l'errore si è verificato, utilizzare l'istruzione throw per propagare o generare nuovamente l'errore tramite un gestore errori di livello superiore.
Una volta che tutte le istruzioni in tryStatements sono state eseguite e che gli eventuali errori sono stati gestiti in catchStatements, le istruzioni in finallyStatements verranno eseguite in modo non condizionale.
Si tenga presente che il codice all'interno di finallyStatements viene eseguito anche se un'istruzione return si verifica all'interno dei blocchi try o catch o se il blocco catch genera un errore. Le istruzioni finallyStatments verranno eseguite sempre.
Esempio
Nel seguente esempio viene illustrato il modo in cui funziona la gestione delle eccezioni in JScript.
try {
print("Outer try running...");
try {
print("Nested try running...");
throw "an error";
} catch(e) {
print("Nested catch caught " + e);
throw e + " re-thrown";
} finally {
print("Nested finally is running...");
}
} catch(e) {
print("Outer catch caught " + e);
} finally {
print("Outer finally running");
}
Il risultato è il seguente:
Outer try running..
Nested try running...
Nested catch caught an error
Nested finally is running...
Outer catch caught an error re-thrown
Outer finally running