异常
JavaScript 解析或运行时,一旦发生错误,javascript 引擎就会抛出一个异常。
异常类型
1.Error 原始异常
2.SyntaxError 语法错误异常
3.ReferenceError 引用异常
4.RangeError 一个值超出有效范围时发生的异常
5.TypeError 异常是变量或参数不是预期类型时发生的异常
6.URIError 是 URI 相关函数的参数不正确时抛出的错误
7.EvalError 全局函数eval没有被正确执行时,会抛出EvalError异常
抛出异常 throw 关键词(任何类型的对象都可以作为错误抛出)
example:
throw new Error("this is error")
异常捕获
try {
f();
} catch(e) {
// 处理错误
}
try {
throw "出错了";
} catch (e) {
console.log(111);
}
console.log(222);
try {
writeFile(Data);
} catch(e) {
handleError(e);
} finally {
closeFile();
}
关于异常的思考
1. 异常的用处有那些?
(1) 异常可以提醒开发者修正一些明显的错误
(2)异常可以中断javascript代码的执行,进行一些强制的值和类型验证
2. 异常发生后javascript线程发生了什么?
正如我们所知道的,javascript是单线程执行的,在异常发生时他会退出当前的执行环境,清空作用域存储空间,等待下一次的一步代码的到来。
参考链接
- 错误处理机制
- Jani Hartikainen, JavaScript Errors and How to Fix Them