JavaScript 错误处理
语法错误
1 | 简单来说,语法错误就是不符合JS语法的错误。出现语法错误,控制台会进行报错并告知出错的行号(但行号不一定准确)。 |
常见的语法错误有
1 | **符号漏打,多大,少打,错打** |
1 | // 语法错误: token = 符号错误 |
运行时错误
1 | 运行时错误(Runtime Error), 指代码没有语法错误,而再**运行的时候才发生**的错误。 运行时错误是一个统称。 |
常见的运行时错误如下几种:
ReferenceError,变量引用异常触发
1 | <script> |
TypeError,类型使用错误时触发
1 | var a = 9; |
RangeError,不太常见,一般会在递归爆栈时触发,即递归深度太深(一般浏览器限制递归只有1024层)
如何区分语法错误与运行时错误
1 | 对于新手来说,语法错误跟运行时错误在仅看代码的情况下,不太容易区分。 |
一个简单的区分方法是:
- 语法错误无论如何都不可能运行成功。
- 运行时错误是有可能运行成功的
逻辑错误
代码的调试: debugger ,断点与单步跟踪调试
1 | // 计算 1~10 的和 ,这里计算错误。 不是55 |
主动触发一个错误
对于前面的情况,主动触发一个错误。
当发生一些不可避免的错误时,可以使用下面的语句来抛出一个错误
throw 语句
发生不可避免的错误时,怎么办?
某些运行时错误不可避免
使用 try catch 语句