JavaScript prova... cattura... finalmente
Esempio
Questo esempio ha un errore di battitura nel blocco try . L'avviso è scritto in modo errato.
Il blocco catch cattura l'errore ed esegue il codice per gestirlo:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
Altri esempi di seguito.
Definizione e utilizzo
Quando si verifica un errore , JavaScript si interrompe e genera un messaggio di errore.
Nota
Il termine tecnico per questo è: JavaScript genera un'eccezione .
JavaScript crea un oggetto Error con due proprietà: name e message .
La try...catch...finally
combinazione di istruzioni gestisce gli errori senza interrompere JavaScript.
L' try
istruzione definisce il blocco di codice da eseguire (da provare).
L' catch
istruzione definisce un blocco di codice per gestire qualsiasi errore.
L' finally
istruzione definisce un blocco di codice da eseguire indipendentemente dal risultato.
L' throw
istruzione definisce un errore personalizzato.
Entrambi catch
e finally
sono facoltativi, ma è necessario utilizzarne uno.
Nota
L'uso di throw con try and catch , consente di controllare il flusso del programma e generare messaggi di errore personalizzati.
Guarda anche:
Sintassi
try {
tryCode - Code block to run
}
catch(err) {
catchCode -
Code block to handle errors
}
finally {
finallyCode - Code block to be executed regardless of the try result
}
Parametri
Parameter | Description |
tryCode | Required. Code block to be tested while executing. |
err | A local reference to the error object. |
catchCode | Optional. Code block to execute if an error occurs. |
finallyCode | Optional. Code block to execute regardless of the try result |
Altri esempi
Questo esempio esamina l'input.
Se il valore è errato, viene generata un'eccezione (err):
<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() {
const message =
document.getElementById("message");
message.innerHTML = "";
let 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>
L' istruzionefinal esegue il codice, dopo indipendentemente dal risultato try:
function myFunction()
const message =
document.getElementById("message");
message.innerHTML = "";
let 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 = "";
}
}
Supporto browser
try...catch
è una funzione ECMAScript3 (ES3).
ES3 (JavaScript 1999) è completamente supportato in tutti i browser:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |