try {
adddlert("Hello") ;
} catch (err) {
document.getElementById("demo").innerHTML = err.message ;
}
// 结果 : adddlert is not defined
JavaScript 将 adddlert 捕捉为一个错误异常,然后执行 catch 代码块来执行错误。
try {
需要检测的代码块;
} catch {
处理 try 检测到错误的代码块;
}
当发送错误是,JavaScript通常会抛出异常并产生异常错误信息(抛出异常) JavaScript实际上会创建带有两个属性的Error对象:name 和 message
throw "To Bug" ;
throw 500 ;
如果把 throw 和 tyr … catch 结合使用,可以控制程序流并生成自定义错误信息。
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title> javascript </title>
</head>
<body>
<div>
<input id="demo" type = "text">
<button type = "button" onclick = myFunction() >
测试
</button>
</div>
<div>
<p id = "message"></p>
</div>
<script>
function myFunction() {
var message , x ;
message = document.getElementById("message") ;
message.innerHTML = "" ;
x = document.getElementById("demo").value ;
try {
if ( x == ""){
throw "Null" ;
}
if (isNaN(x)){
throw "No is Number" ;
}
if (x < 5){
throw "小" ;
}
if (x > 10){
throw "大" ;
}
} catch (error) {
message.innerHTML = "输入值:" + error ;
}
}
</script>
</body>
</html>
代码对输入内容进行了异常错误检测,并使用throw自定义错误异常信息
<input id = "demo" type = "number" min = "5" max = "10" step = "1" >
try {
try检测代码块;
} catch(error) {
处理错误的代码块;
} finally {
必须要执行的代码块;
}
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title> javascript </title>
</head>
<body>
<div>
<input id="demo" type = "text">
<button type = "button" onclick = myFunction() >
测试
</button>
</div>
<div>
<p id = "message"></p>
</div>
<script>
function myFunction() {
var message , x ;
message = document.getElementById("message") ;
message.innerHTML = "" ;
x = document.getElementById("demo").value ;
try {
if ( x == ""){
throw "Null" ;
}
if (isNaN(x)){
throw "No is Number" ;
}
if (x < 5){
throw "小" ;
}
if (x > 10){
throw "大" ;
}
} catch (error) {
message.innerHTML = "输入值:" + error ;
} finally {
document.getElementById("demo").value = "" ;
}
}
</script>
</body>
</html>
以输入验证为实例作为依据,在38~39行加入 finally 语句,无乱try…catch 语句结果如何
属性 | 描述 |
---|---|
name | 设置或返回错误名 |
message | 设置或返回错误信息(一条字符串) |
错误值 | 描述 |
---|---|
EvalError | 在eval()函数中发生的错误 |
RangeError | 超出数字范围的错误 |
ReferenceError | 发生非法引用的错误 |
SyntaxError | 发生语法的错误 |
TypeError | 发生类型的错误 |
URIError | 在 encodeURI() 中发生的错误 |