本例檢測(cè)輸入變量的值。如果值是錯(cuò)誤的,會(huì)拋出一個(gè)異常(err)
異常 (err) 通過(guò) catch 語(yǔ)句捕獲并自定義輸出錯(cuò)誤信息:
定義和用法:
throw 語(yǔ)句拋出一個(gè)錯(cuò)誤。
當(dāng)錯(cuò)誤發(fā)生時(shí), JavaScript 會(huì)停止執(zhí)行并拋出錯(cuò)誤信息。
描述這種情況的技術(shù)術(shù)語(yǔ)是:JavaScript 將拋出一個(gè)錯(cuò)誤。
throw 語(yǔ)句創(chuàng)建自定義錯(cuò)誤。
技術(shù)術(shù)語(yǔ)是: 拋出異常。
異??梢允?JavaScript 字符串、數(shù)字、邏輯值或?qū)ο螅?br>
注意點(diǎn): catch 和 finally語(yǔ)句都是可選的,但在使用 try語(yǔ)句時(shí)必須至少使用一個(gè)。當(dāng)錯(cuò)誤發(fā)生時(shí), JavaScript 會(huì)停止執(zhí)行,并生成一個(gè)錯(cuò)誤信息??梢允褂胻hrow語(yǔ)句 來(lái)創(chuàng)建自定義消息(拋出異常)
只能捕獲到同步的異常,不能捕獲語(yǔ)法和異步的異常,在日常使用中需要注意
<!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>