js 异常处理

2021-01-07  本文已影响0人  一只章鱼哥

一、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>

上一篇 下一篇

猜你喜欢

热点阅读