🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 为什么要错误处理 1. 良好的错误处理机制可以让开发者以及用户得到良好的反馈,不至于惊惶失措 2. 捕获错误的目的是为了避免浏览器以默认的行为去处理,浏览器当遇到try catch语句,语句内发生错误时,浏览器会认为程序已经处理,所以不去处理 3. 抛出错误的目的是为了让用户知道错误引起的具体原因 #### JS常见错误来源 1. 未充分检测数据类型,在函数中最为常见 2. AJAX异步数据请求及响应中发生的数据错误 #### 后台如需要收集前端错误日志 1. 可使用img.src发送请求,避免跨域,因为服务端可以收集多端的错误日志 2. 在catch中均调用logError接口,接具体的错误信息模块、错误等级等发送给到后台 #### JS错误处理,避免浏览器处理错误 1. try catch 2. window.error && 异步error事件 3. 查找错误,可以观察函数的调用堆栈,堆栈调用是后进先出( LIFO ) last in, first out ``` try { //可能发生错误的代码 const a \= 10 a \= 20 return 10 } catch (e) { //e为错误对象,message属性包含错误信息 //在错误发生时如何处理 console.log(e.message) return 20 } finally { //finally语句在try\\catch内执行,它都会执行,包括return都会忽略,最终返回30 //添加了finally语句,catch即变成可选的 console.log('finally') return 30 } ``` #### JS抛出异常 1. throw:字符串 || 对象 2. throw '分子不能为0'