前端异常的捕获与处理
一 异常分类:
执行 JS 期间可能会发生的错误有很多类型。每种错误都有对应的错误类型,而当错误发生的时候就会抛出响应的错误对象。ECMA-262 中定义了下列 7 种错误类型:
- Error:错误的基类,其他错误都继承自该类型
- EvalError:Eval 函数执行异常
- RangeError:数组越界
- ReferenceError:尝试引用一个未被定义的变量时,将会抛出此异常
- SyntaxError:语法解析不合理
- TypeError:类型错误,用来表示值的类型非预期类型时发生的错误
- URIError:以一种错误的方式使用全局 URI 处理函数而产生的错误
二 异常处理:try-catch
对语法和异步错误却无能为力,捕获不到
1 var array = null; 2 try { 3 document.write(array[0]); 4 } catch(err) { 5 document.writeln("Error name: " + err.name + ""); 6 document.writeln("Error message: " + err.message); 7 } 8 finally{ 9 alert("object is null"); 10 } 11 12 程序执行过程 13 14 1. array[0]的时候由于没有创建array数组,array是个空对象,程序中调用array[0]就会产生object is null的异常 15 2. catch(err)语句捕获到这个异常通过err.name打印了错误类型,err.message打印了错误的详细信息. 16 3. finally类似于java的finally,无论有无异常都会执行.
前端异常的捕获与处理:https://juejin.cn/post/6932620551827488775#heading-16