写了一些代码,多数在追求会用,很少关注程序健壮性问题,node崩溃,重启再来就是。但这样的状态是不会持续的,不应用到生产环境代码没有意义。因此,把原来模模糊糊的error对象,try catch语句块的问题捋一遍,希望能够尽快应用在代码中。
try catch语句块
检测try语句块中的错误,并将错误传递到catch语句中处理,语句的使用不再赘述。
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
这个一句乱入的文字,代表语义错误
adddlert("欢迎您");
throw "kklkl"
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>
在上述实例中,adddlert,“这个一句乱入的文字,代表语义错误”。代表了未定义对象和语法错误。上述代码,会顺利执行并打出错误信息。但假如去掉try包块,js会直接报错导致程序退出。
总结:
- try语句块中的代码,js在加载时不会检测其中的语法语义错误。
- try语句块中的任何错误,都会传入catch(err)语句进行处理,而不会导致程序退出。
- try语句块中出现的错误,可以是系统检测到的错误,也可以通过手动throw(“message”)
抛出。 - try catch语句必须成对出现。
- throw语句必须要有捕获代码来处理,throw抛出的错误可以沿调用链向外一层层传递,一直找到catch()语句。如果没有,则程序会报错退出。
- 由上一条,系统自己检测到的错误,也必须沿调用链向外一层层传递,一直找到catch()语句。如果没有,则程序会报错退出。