JS-异常处理

118 阅读2分钟

错误处理方案

  • 通过throw关键字,抛出一个异常
  • 如果我们执行代码,就会报错,拿到错误信息就可以及时修正代码

throw

  • throw语句用于抛出一个用户自定义的异常
  • 在throw后面跟上一个表达式来表示具体异常信息
  • 当遇到throw语句时,当前函数执行会被停止(throw后面的语句不会执行)
  • throw关键字可以跟哪些类型
    • 基本数据类型:number,string,Boolean
    • 对象类型:可以包含更多信息
    • 也可以创建一个类

Error

  • JS提供了Error类,可以直接创建这个类的对象
  • Error包含3个属性
    • message:创建Error对象时传入的Message
    • name:Error的名称,通常和类的名称一致
    • stack:Error的错误信息,包括函数的调用栈
  • Error有一些自己的子类
    • RangeError:下标值越界时
    • SyntaxError:解析语法错误时
    • TypeError:出现类型错误时

异常的处理

  • 一个函数抛出了异常,调用它的时候程序就会被强制终止
    • 如果在调用一个函数时,抛出了异常,但是没有对这个异常进行处理,那么这个异常会继续传递到上一个函数调用中
    • 到了最顶层(全局)的代码中依然没有对这个函数的异常进行处理,就会报错并终止程序运行

异常的捕获

  • try catch

    try {
        
    } catch (error) {
    	// 捕获异常
    } finally {
        // 不管有没有异常捕获都会执行
    }
    
  • 在ES10(ES2019)中,catch后面绑定的error可以省略

  • 如果有一些必须要执行的代码,可以使用fianlly执行

    • finally表示最终一定会被执行的代码结构
    • 如果finally和try中都有返回值,那么会使用fianlly当中的返回值