JavaScript错误
在执行JavaScript代码的时候,会发生很多错误
错误可能是程序猿的编码错误,由错误输入引起的错误,或者其他不可见的原因
- try语句使我们能够测试代码中的错误
- catch语句能够允许我们自己处理错误
- throw允许自定义创建错误
- finally能够在无论try和catch结果是什么的前提下自定义都能执行的代码片段
- 实例运用 try 和 catch
<p id="demo"></p>
<script>
try{
allert('欢迎您');
}
catch(err) {
document.getElementById("demo").innerHTML = "err.message"
}
</script>
在测试(try)代码片段时,allert是一个没有被定义的方法,所以最终结果返回的是:allert is not defined
- 实例运用 try、catch、throw 和 finally
<p>请输入5-10之间的数字</p>
<input type="text" id="demo">
<input type="button" value="测试输入" onclick = "myFunction()">
<p id="message"></p>
<script>
function myFunction(){
var message = document.getElementById("message");
var x = document.getElementById("demo").value;
console.log(x);
try{
if(x=="") throw "空的";
if(isNaN(x)) throw "不是数字";
if(x<5) throw "太小";
if(x>10) throw "太大"
}
catch(err){
message.innerHTML = err;
}
finally {
document.getElementById("demo").value = '';
}
}
</script>
在上面这串代码中,throw后面自定义了很多错误来供catch来调用,finally表示不管上面执行的是什么,最后我都要将输入框中的内容清空
- Error对象
JavaScript拥有当错误发生时提供错误信息的内置error对象。
error对象提供两个有用的属性:name和message。
属性 | 描述 |
---|---|
name | 设置或者返回错误名 |
message | 设置或返回错误消息(一条字符串) |
如第一个例子返回的err.name和err.mseeage分别是
allert is not defined // err.message
ReferenceError // err.name 非法引用