【笔记】JS的异常
前言
JS的异常学习笔记
抛出异常
- 通过
throw关键字抛出异常,抛出以上后JS引擎会终止执行当前作用域之后的代码- 如果当前异常被捕获,则立即进入
catch代码块中处理捕获到的异常 - 如果当前异常没有被捕获,则会继续向上层作用域抛出异常
- 如果当前异常直到全局作用域也没有被捕获,则JS引擎会终止执行全局作用域之后的所有代码,并在控制台输出一个错误信息
- 如果当前异常被捕获,则立即进入
抛出任意类型的异常
抛出字符串类型的异常
1 | throw "文本内容"; |
1 | Uncaught 文本内容 |
抛出对象类型的异常
1 | throw {}; |
1 | Uncaught {} |
抛出Error类型的异常
- 抛出Error类型的异常会输出调用栈信息
- 调用栈信息的
index.js表示index.js文件中出现异常 - 调用栈信息的
1表示第1行出现异常 - 调用栈信息的
7表示第7列出现异常,7是代码new Error()位置的n的下标,如果当前行包含空格也会被计算到下标中
- 调用栈信息的
1 | throw new Error("文本内容"); |
1 | Uncaught Error: 文本内容 |
捕获异常
- 通过
try...catch代码块捕获异常
获取Error对象
1 | try { |
1 | 文本内容 |
不获取Error对象(ES9)
1 | try { |
最终
- finally代码块中的代码无论是否捕获到异常都会执行
1 | try { |