Estratto JavaScript try/catch/finally

Definizione e uso

L'istruzione try/catch/finally gestisce gli errori che possono verificarsi in parte o interamente all'interno di un blocco di codice, mantenendo comunque l'esecuzione del codice.

Gli errori possono essere causati da errori di codifica del programmatore, errori di input e altre situazioni impreviste.

L'istruzione try ti permette di definire un blocco di codice che deve essere testato per errori durante l'esecuzione.

Se si verifica un errore nel blocco try, l'istruzione catch permette di definire il blocco di codice da eseguire.

L'istruzione finally permette di eseguire codice dopo il try e il catch, indipendentemente dal risultato.

Nota:Le istruzioni catch e finally sono opzionali, ma devono essere utilizzate una di esse (o entrambe) quando si utilizza l'istruzione try.

Suggerimento:Quando si verifica un errore, JavaScript di solito si ferma e genera un messaggio di errore. Usa l'istruzione throw per creare errori personalizzati (lancia eccezioni). Se si utilizza throw insieme a try e catch, è possibile controllare il flusso del programma e generare messaggi di errore personalizzati.

Per ulteriori informazioni sugli errori JavaScript, consulta la guida agli errori JavaScript.

Example

In questo esempio, abbiamo commesso un errore di battitura nel codice (nel blocco try).

Questo esempio dovrebbe mostrare "Benvenuto ospite!", ma c'è un errore di battitura nell'alert.

Il blocco catch cattura gli errori ed esegue il codice per gestirli:

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
  adddlert("Benvenuto ospite!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>

try it yourself

Più esempi TIY sono disponibili nella parte inferiore della pagina.

Sintassi

try {
  tryCode - Blocco di codice da tentare
}
catch(err) {
  catchCode - Blocco di codice per gestire gli errori
} 
finally {
  finallyCode - Blocco di codice da eseguire indipendentemente dal risultato di try / catch
}

Valore del parametro

Parametro Descrizione
tryCode Obbligatorio. Blocco di codice da testare durante l'esecuzione per verificare l'errore.
err Obbligatorio, se utilizzato con catch. Specifica il variabile locale di riferimento dell'errore. Questa variabile può riferirsi all'oggetto Error (che contiene informazioni sull'errore che si è verificato, ad esempio il messaggio "'addlert' is not defined"). Se l'eccezione è stata creata da una istruzione throw, la variabile si riferisce all'oggetto specificato nell'istruzione throw (vedi "Ulteriori esempi").
catchCode Opzionale. Blocco di codice da eseguire se si verifica un errore nel blocco try. Se non si verifica alcun errore, questo blocco di codice non verrà mai eseguito.
finallyCode Opzionale. Blocco di codice da eseguire indipendentemente dal risultato di try / catch.

Dettagli tecnici

JavaScript version: ECMAScript 3

More examples

Example

This example checks the input. If the value is incorrect, it throws an exception (err).

The catch statement catches exceptions (err) and displays a custom error message:

<!DOCTYPE html>
<html>
<body>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "is Empty";
    if(isNaN(x)) throw "not a number";
    if(x > 10) throw "too high";
    if(x < 5) throw "too low";
  }
  catch(err) {
    message.innerHTML = "Input " + err;
  }
}
</script>
</body>
</html>

try it yourself

Example

The finally statement allows you to execute code after try and catch, regardless of the result:

function myFunction()
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "Empty";
    if(isNaN(x)) throw "Not a number";
    if(x > 10) throw "Too high";
    if(x < 5) throw "Too low";
  }
  catch(err) {
    message.innerHTML = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

try it yourself

browser support

语句 Chrome IE Firefox Safari Opera
try/catch/finally Supporto Supporto Supporto Supporto Supporto

Pagine correlate

Tutorial JavaScript:Errore JavaScript

Manuale di riferimento JavaScript:Espressione throw JavaScript