错误处理方案
- 通过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当中的返回值