La try dichiarazione consente di verificare un blocco di codice per gli errori.
La catch dichiarazione consente di gestire l'errore.
Il throw dichiarazione consente di creare errori personalizzati.
L'istruzione finally permette di eseguire il codice, dopo try e catch, indipendentemente dal risultato.
Gli errori che accadrà!
Durante l'esecuzione di codice JavaScript, possono verificarsi diversi errori.
Gli errori possono essere errori di codifica da parte del programmatore, errori dovuti a ingresso sbagliato, e altre cose imprevedibili:
Esempio
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>
Prova tu stesso " Nell'esempio precedente abbiamo fatto un errore di battitura nel codice (nel blocco try).
Il catch di blocco cattura l'errore, ed esegue il codice per gestire la cosa.
JavaScript try e catch
La try dichiarazione consente di definire un blocco di codice da testare per errori mentre è in esecuzione.
La catch dichiarazione consente di definire un blocco di codice da eseguire, se si verifica un errore nel blocco try.
Le istruzioni JavaScript try e catch sono a coppie:
try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}
JavaScript può generare errori
Quando si verifica un errore, JavaScript normalmente fermarsi, e genera un messaggio di errore.
Il termine tecnico per questo è: alzerà JavaScript (o lanciare) un'eccezione.
Il throw Statement
Il throw dichiarazione consente di creare un errore personalizzato.
Tecnicamente è possibile aumentare (gettare) un'eccezione.
L'eccezione può essere una stringa JavaScript, un numero, un valore booleano o di un oggetto:
throw "Too big"; // throw a text
throw 500; // throw a number
Se si usa throw insieme a try e catch , è possibile controllare il flusso del programma e generare messaggi di errore personalizzati.
Input Validation Esempio
Questo esempio esamina ingresso. Se il valore è sbagliato, viene generata un'eccezione (ERR).
L'eccezione (ERR) è catturato da l'istruzione catch e viene visualizzato un messaggio di errore personalizzato:
<!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 "empty";
if(isNaN(x)) throw "not a number";
x = Number(x);
if(x < 5) throw
"too low";
if(x > 10) throw "too
high";
}
catch(err) {
message.innerHTML =
"Input is " + err;
}
}
</script>
</body>
</html>
Prova tu stesso " Validazione HTML
Il codice di cui sopra è solo un esempio.
I browser moderni useranno spesso una combinazione di JavaScript e built-in di validazione HTML, utilizzando regole di convalida predefinite definite in HTML attributi:
<input id="demo" type="number" min="5" max="10" step="1"
Si può leggere di più sulla convalida forme in un capitolo successivo di questo tutorial.
Il finally Statement
Il finally dichiarazione permette di eseguire il codice, dopo try e catch , a prescindere dal risultato:
try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}
finally {
Block of code to be
executed regardless of the try / catch result
}
Esempio
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 "is not a number";
x = Number(x);
if(x >
10) throw "is too high";
if(x <
5) throw "is too low";
}
catch(err)
{
message.innerHTML = "Error: " +
err + ".";
}
finally {
document.getElementById("demo").value
= "";
}
}
Prova tu stesso "