js高阶——异常处理

js内置异常类

        1. ReferenceError:引用异常

            一般是使用了未定义的变量

        2. SyntaxError:语法异常

            一般是指代码写错

        3. TypeErorr:类型异常

            一般是指数据类型错误。比如参数类型不对

        4. RangeError:范围异常

            错误的数组下标

        5. URIError:地址异常

            在处理非法地址时出错,比如利用decodeURICompoent()来处理地址,地址中时不允许有%,有则报URIError

        6. evalError(淘汰):错误使用eval函数时会报错

异常处理

        try

        catch

        finally语句是可选的,在try语句执行完成后,无论有没有出错,finally都会执行。

        一般对局部代码使用。

        一般执行顺序 try - catch - finally

        const grade = Math.random() * 100;
        try {
            if (grade == 0) {
                throw new Error('自定义类名')//错误的名称
            }
        } catch (error) {
            console.dir(error)
        } finally {

        }

自定义异常处理

       //es5
        function err(message) {
            // this.message = message;
            this.message = message;
            this.name = '自定义类名';
        }
        err.prototype = new Error();

        //es6
        class err1 extends Error {
            constructor(message) {
                super(message);
                this.name = '自定义类名';
            }
        }

异常对象的常见名称

        name    名称

        message 信息

        stack:异常方法栈,产生错误的地方

主动抛出异常

        当程序执行到需要进行严格判断时,一般当布满足条件时,可以选择主动抛出异常

        比如考0分,主动观察问题。

        const grade = Math.random() * 100;
        try {
            if (grade == 0) {
                throw new Error('自定义类名')//错误的名称
            }
        } catch (error) {
            console.dir(error)
        } finally {

        }

return在异常中的表现

无异常时,如果return在try里,会先保存要返回的数据,
再去执行finally(如果有),执行之后就返回。

有异常时,返回的时catch里的return。

无论是否有异常,只要finally有return,那么执行的时finally里的return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值