在使用JS写前端代码时经常会出现以下错误,如下图所示
说明:
其实JS是可以像Java一样进行异常捕获的,如JS未进行异常捕获在出错的时候就会从出错的地方开始后面的都不会执行,如界面空白现象等等。
JS的异常捕获语法如下
语法:
try{
//可能发生异常的代码
}catch(error){
//发生错误执行的代码
}finally{
//无论是否发生异常,都会执行
}
说明
1、把有可能出的问题的代码放在 try 语句中。try语句中可以理论上可以写任何的代码,只要有一行代码出现问题,整个程序的执行流程就会立即调到catch语句中执行。
2、一旦try中有一行代码发生异常,则这行出错代码的后面的try中的其他语句都不会再执行。比如上面代码中的console.log(b);这行代码会出错,则立即去执行catch中的代码。所以console.log("我不会输出的,不要找了")这行代码则不会再执行
3、在执行catch中的代码之前,js引擎会首先根据错误类型自动创建一个错误,并通过catch后面的参数传递到catch中。不同的浏览器创建的error对象不一样,但是同创他们都包含一个message属性,值是这个错误的一些信息。
4、catch中的代码执行完毕之后,会继续执行后面的代码,程序不会停止下来。
5、finally 中的代码块是在最后面执行,且无论是否发生异常,都会执行。
样例:
<script>
try{
console.log(b);
console.log("我不会输出的,不要找了")
}catch(error){
console.log("发生错误了")
}finally {
console.log("不管发生不发生错误,我都会执行")
}
console.log("我try catch后面的代码")
</script>
JS中的异常类型
Error
EvalError
RangeError
ReferenceError
SyntaxError
TypeError
URIError
说明:
1、Error类型是基本的错误类型,其他类型都继承自这个类型。
2、EvalError 类型的错误会在使用 eval()函数而发生异常时被抛出
3、TypeError 类型在 JavaScript 中会经常用到,在变量中保存着意外的类型时,或者在访问不存在4的 方法时,都会导致这种错误
尾言
实际上JS这门语言绝大多数是参考Java的,如在异常处理这块可以说是Java和JS是互通的