梦入琼楼寒有月,行过石树冻无烟

JavaScript 异常处理

在通常的开发语言之中,都会有异常处理的功能,而JavaScript也和其他的开发语言一样,可使用异常处理来对相关功能添加异常信息:

异常处理格式

1
2
3
4
5
6
7
try {
// 正常Code
} catch (e) {
// 检查是否出发错误?
} finally {
// 结束处理
}

在JavaScript之中,与Java一样 try……catch……finally中的finally也就是说无论是否错误,finally都会被执行一次

try……catch……finally

try
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
var data="";
function message(){
try {
data = "Hello,world";
}
catch(err) {
data = "错误 " + err.message + "\n";
}
finally {

alert(data);
}
}
</script>
</head>
<body>
<input type="button" value="开始" onclick="message()" />
</body>
</html>
finally
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
var data="";
function message(){
try {
adddlert("err");
}
catch(err) {
data = "错误 " + err.message + "\n";
}
finally {
alert(data); // 无论如何都会执行 finally 代码块
}
}
</script>
</head>
<body>
<input type="button" value="开始" onclick="message()" />
</body>
</html>

Throw

Throw与上述的try……catch……finally的区别就是throw是一个方法,可使用“Throw”自定义错误消息,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">开始</button>
<p id="message"></p>
<script>
function myFunction() {
var message,data;
message = document.getElementById("message");
message.innerHTML = "";
data = document.getElementById("demo").value;
try {
if (data == "") {
throw "请输入数值";
}
if (isNaN(data)) throw "请输入数字";
data = Number(data);
if (data < 10) throw "小数";
if (data > 100) throw "超常规";
} catch(err) {
message.innerHTML = "错误: " + err;
}
}
</script>
</body>
</html>

表单属性 (required)

当表单处于为空时,可通过required浏览器自带功能进行判断,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>

<form method="post">
<input type="text" name="fname" required="required">
<input type="submit" value="开始">
</form>

</body>
</html>
ID DA FA
throw 自定义错误 js
required 浏览器检测空表单 html
⬅️ Go back