JavaScript 错误
可能是语法错误,通常是程序员造成的编码错误或错别字。
可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。
可能是由于来自服务器或用户的错误输出而导致的错误。
当然,也可能是由于许多其他不可预知的因素。
JavaScript 抛出(throw)错误
当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。
描述这种情况的技术术语是:JavaScript 将抛出一个错误。
JavaScript try 和 catch
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
JavaScript 语句 try 和 catch 是成对出现的。
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 1<!DOCTYPE html>
2<html>
3<head>
4<meta charset="utf-8">
5
6<script>
7var txt="";
8function message(){
9 try {
10 adddlert("Welcome guest!");
11 }
12 catch(err) {
13 txt="本页有一个错误。\n\n";
14 txt+="错误描述:" + err.message + "\n\n";
15 txt+="点击确定继续。\n\n";
16 alert(txt);
17 }
18}
19</script>
20</head>
21<body>
22
23<input type="button" value="查看消息" onclick="message()" />
24
25</body>
26</html>
27
运行结果:
本页有一个错误。
错误描述:adddlert is not defined
点击确定继续。
Throw 语句
throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)。
如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
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
31
32
33
34
35
36 1<!DOCTYPE html>
2<html>
3<head>
4<meta charset="utf-8">
5
6</head>
7<body>
8
9<p>请输出一个 5 到 10 之间的数字:</p>
10
11<input id="demo" type="text">
12<button type="button" onclick="myFunction()">测试输入</button>
13<p id="message"></p>
14
15<script>
16function myFunction() {
17 var message, x;
18 message = document.getElementById("message");
19 message.innerHTML = "";
20 x = document.getElementById("demo").value;
21 try {
22 if(x == "") throw "值为空";
23 if(isNaN(x)) throw "不是数字";
24 x = Number(x);
25 if(x < 5) throw "太小";
26 if(x > 10) throw "太大";
27 }
28 catch(err) {
29 message.innerHTML = "错误: " + err;
30 }
31}
32</script>
33
34</body>
35</html>
36