JavaScript内置异常类

异常

        概念  

                生活中,因为某些意外的情况导致事情没有按计划执行,比如因堵车未赶上火车,我们称这些情况为意外。

                在程序中,因为语法的疏忽或其他原因而导致程序中途奔溃的情况,我们成为异常。

JavaScript内置异常类

        1. ReferenceError :引用异常

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

        2.SyntaxError:语法异常

                                一般指代码写错

        3. TypeError:类型异常

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

        4.RangeError:范围异常

                                错误的数组下标

        5.URIError:地址异常

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

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

处理异常(try-catch-finally)

try{
    //可能会发生异常的代码
}catch{
    //发生异常时执行的代码,cath可以定义个局部变量来接受当前的异常对象

}finally{
    //无论是否发生了异常,都会执行的代码   
}
    /*
        finally是可选的,一般在使用了硬盘资源(io)需要关闭的使用的通道才使用finall
        不要把所有的代码都放在try里面,这样会导致程序过于集中,并且加大内存资源的消耗,一般                    
           是对局部的代码使用
        一般执行属性try-catch-finally
    */

主动抛出异常

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

        语法: throw new 异常类名('发生异常时提示的内容')

        一般时强业务逻辑时,会使用主动抛出的异常

自定义异常(ES6、ES5)

        javaScript内置异常并不能很好的满足业务需求。比如登录异常、注册异常等,利用自定义异常语法来解决

        语法  

class 自定义异常名 extends Error {
    constructor(message){
        super(message)
        this.name = '自定义异常名'    
    }
}
      //自定义通常只能时主动抛出
//es5实现自定义异常
    自定义异常类名.prototype = new Error()
  function 自定义异常类名(message){
        this.name = message
        this.name = "自定义异常类名"    
}

return在异常中的表现

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

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

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

异常对象的常见属性

        name:发生异常的名字

        message:发生异常的原因

        stack:异常方法栈,会输出在哪个位置发生了异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值