一、Javascript的异常捕获机制
1.1 基本的try…catch语句
ES3开始引入了 try-catch 语句,是 JavaScript 中处理异常的标准方式。
语法:
try{
//可能发生异常的代码
}catch(error){
//发生错误执行的代码
}
<script>
try{
console.log(b);
console.log("我不会输出的,不要找了")
}catch(error){
console.log("发生错误了")
}
console.log("我try catch后面的代码")
</script>
说明:
1.把有可能出的问题的代码放在 try 语句中。try语句中可以理论上可以写任何的代码,只要有一行代码出现问题,整个程序的执行流程就会立即调到catch语句中执行。
2.一旦try中有一行代码发生异常,则这行出错代码的后面的try中的其他语句都不会再执行。比如上面代码中的console.log(b);这行代码会出错,则立即去执行catch中的代码。所以console.log("我不会输出的,不要找了")这行代码则不会再执行
3.在执行catch中的代码之前,js引擎会首先根据错误类型自动创建一个错误,并通过catch后面的参数传递到catch中。不同的浏览器创建的error对象不一样,但是同创他们都包含一个message属性,值是这个错误的一些信息。
4.catch中的代码执行完毕之后,会继续执行后面的代码,程序不会停止下来。
1.2 js中的错误类型
Error
EvalError
RangeError
ReferenceError
SyntaxError
TypeError
URIError
说明:
1.Error类型是基本的错误类型,其他类型都继承自这个类型。
2.EvalError 类型的错误会在使用 eval()函数而发生异常时被抛出
3.TypeError 类型在 JavaScript 中会经常用到,在变量中保存着意外的类型时,或者在访问不存在的 方法时,都会导致这种错误
二、throw主动抛出异常
2.1 抛出js内置错误类型的对象
有时候在检测到一些不合理的情况发生的时候也可以主动抛出错误。使用 throw 关键字抛出来主动抛出异常。
<script>
throw new Error("你好坏");
console.log("执行不到这里的")
</script>
2.2 抛出自定义类型的错误对象
不仅可以抛出js内置的错误类型的对象,也可以自定义错误类型,然后抛出自定义错误类型的对象。
<script>
function MyError(message) {
this.message = "注意:这是自定义的错误"
this.name = "自定义错误";
}
MyError.prototype = new Error();
try {
throw new MyError("注意:这是自定义错误类型")
}catch (error){
console.log(error.message)
}
</script>
网友评论