首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

一篇文章教你如何捕获前端错误

e.g: 下图是当使用了未定义的变量"foo",导致产生js运行时错误时的上报数据: ? 2、资源加载错误 这里的静态资源包括js、css以及image等。...3、未处理的promise错误 使用catch捕获的promise错误,往往都会存在比较大的风险。而编码时有可能覆盖的不够全面,因此有必要监控未处理的promise错误并进行上报。...TypeError: Uncaught ReferenceError: a is not defined error.statck: TypeError: ReferenceError: a is not...isElementTarget) return false; // 上报资源地址 let url = target.src || target.href; console.log(url);..., url) { _oldOpen.apply(this, arguments); this.ajaxUrl = url; }; (滑动查看) 其他问题 1、其他框架,例如vue项目的错误捕获

3.6K40

7种你应该知道的JavaScript常见的错误

ReferenceError 当对变量/项的引用被破坏或不存在时,将引发此错误。也就是说,变量/项不存在。...调用尚未定义的函数。 现在,当我们创建或定义一个没有赋值的变量时。变量将键作为变量名写入环境记录,但该值将保持未定义状态。...can't find it 注意:未定义的变量不会抛出ReferenceError,因为它存在于环境记录中只是它的值尚未设置。 3. SyntaxError 这是我们遇到的最常见的错误。...解析期间,JS引擎捕获了此错误。 在JS引擎中,我们的代码经历了不同的阶段,然后才能在终端上看到运行结果。 标记化 解析 执行 标记化将源代码分解为各个单元。...decodeURI("%") ^ URIError: URI malformed encodeURI,获取URI的编码版本。“%”不是正确的URI,因此引发了URIError。

2.6K10

你应该知道的7 个 JavaScript 原生错误类型

ReferenceError 当对变量或项目的引用被破坏时,将会引发此错误。那是变量或项目不存在。...调用尚未定义的函数。 现在,当我们创建或定义一个没有赋值的变量时。变量将其键作为变量名写入环境记录,但其值将会保持未定义的状态。...can't find it 注意:未定义的变量不会抛出 ReferenceError,因为它在于环境记录中的值尚未设置。 3. SyntaxError 这是最常见的错误。...JS 引擎在解析期间捕获了这个错误。在 JS 引擎中,我们的代码经历了不同的阶段,然后才能在终端上看到结果。 标记化 解析 解释 标记化将代码的源分解为各个单元。...根据 EcmaSpec 2018 版: 此规范当前使用此异常。保留它目的是为了与本规范的先前版本兼容。 7.

2.6K20

JavaScrip最容易犯的十大错误及其避免方法()

your name" /> 4 (unknown): Script error 当捕获的...例如,如果您在CDN上托管JavaScript代码,任何捕获的错误(冒泡到window.onerror处理程序的错误,而不是在try-catch中捕获)将被报告为“脚本错误”而不是包含有用的错误 信息...TypeError: Cannot read property ‘length’ 您通常会在数组中找到定义的长度,但如果初始化数组或者在另一个上下文中隐藏变量名,则可能会遇到此错误。...ReferenceError: event is not defined 当您尝试访问未定义或超出当前范围的变量时,将引发此错误。 您可以在Chrome浏览器中轻松测试它。...如果预期类型但尚未定义,它可以警告您。即使没有Typescript,在使用它们之前使用guard子句来检查对象是否未定义也是有帮助的。

11610

使用断点调试代码「建议收藏」

对于一些被封装好了的 xhr 请求例如 JQuery 的 ajax 方法,浏览器无法定位到被调用的地方。...操作: f12 -> Source Tab -> 点击 Pause on exceptions 暂停图标 -> 图标变成蓝色,表明启用了在捕获到的异常出现的时候断点的功能。...如果是所有异常都中断(勾选了 Pause On Caught Exceptions),那么代码执行到会产生异常的 throw 语句时就会自动中断;而如果是仅遇到捕获异常才中断,那么这里就不会中断。...一般我们会更关心遇到捕获异常的情况。 ---- Function breakpoints 在你希望 debug 一个具体的函数时使用。功能与在此函数的第一行代码出打断点是一样的。...要注意确保目标函数与 debug 函数在同一个作用域里面,否则会报 ReferenceError: 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143599.html

1.2K20

前端开发,如何优雅处理前端异常?

总结一下,大概如下: JS 语法错误、代码异常 AJAX 请求异常 静态资源加载异常 Promise 异常 Iframe 异常 跨域 Script error 崩溃和卡顿 下面我会针对每种具体情况来说明如何处理这些异常...:ReferenceError: nam is not defined at :3:15 不能捕获到具体的语法错误,只有一个语法错误提示。...// source:发生错误的脚本URL(字符串) // lineno:发生错误的行号(数字) // colno:发生错误的列号(数字) // error:Error对象(对象) console.log...js 脚本: const script = document.createElement('script');script.crossOrigin = 'anonymous';script.src = url...十二、错误上报 1.通过 Ajax 发送数据 因为 Ajax 请求本身也有可能会发生异常,而且有可能会引发跨域问题,一般情况下更推荐使用动态创建 img 标签的形式进行上报。

94310

如何优雅处理前端异常?

总结一下,大概如下: 1、JS 语法错误、代码异常 2、AJAX 请求异常 3、静态资源加载异常 4、Promise 异常 5、Iframe 异常 6、跨域 Script error 7、崩溃和卡顿 下面我会针对每种具体情况来说明如何处理这些异常...捕获到异常: ReferenceError: nam is not defined at :3:15 2....// source:发生错误的脚本URL(字符串) // lineno:发生错误的行号(数字) // colno:发生错误的列号(数字) // error:Error对象(对象) console.log...脚本: const script = document.createElement('script'); script.crossOrigin = 'anonymous'; script.src = url...通过 Ajax 发送数据 因为 Ajax 请求本身也有可能会发生异常,而且有可能会引发跨域问题,一般情况下更推荐使用动态创建 img 标签的形式进行上报。 2.

2.1K30

如何优雅处理前端异常?

总结一下,大概如下: JS 语法错误、代码异常 AJAX 请求异常 静态资源加载异常 Promise 异常 Iframe 异常 跨域 Script error 崩溃和卡顿 下面我会针对每种具体情况来说明如何处理这些异常...: 捕获到异常:ReferenceError: nam is not defined at :3:15 不能捕获到语法错误 我们修改一下代码,删掉一个单引号: try {...// source:发生错误的脚本URL(字符串) // lineno:发生错误的行号(数字) // colno:发生错误的列号(数字) // error:Error对象(对象) console.log...脚本: const script = document.createElement('script'); script.crossOrigin = 'anonymous'; script.src = url...错误上报 通过 Ajax 发送数据 因为 Ajax 请求本身也有可能会发生异常,而且有可能会引发跨域问题,一般情况下更推荐使用动态创建 img 标签的形式进行上报。

1.6K20

前端基础进阶(十五):详解 Promise对象

// 简单的ajax原生实现 var url = 'https://hq.tigerbrokers.com/fundamental/finance_calendar/getType/2017-02-26...不过,Node.js 有一个unhandledRejection事件,专门监听捕获的reject错误,上面的脚本会触发这个事件的监听函数,可以在监听函数里面抛出错误。...如果 Promise 内部有捕获的错误,会直接终止进程,并且进程的退出码不为 0。 再看下面的例子。...到了那个时候,Promise 的运行已经结束了,所以这个错误是在 Promise 函数体外抛出的,会冒泡到最外层,成了捕获的错误。...: x is not defined] // carry on [ReferenceError: y is not defined] 上面代码中,第二个catch()方法用来捕获前一个catch()方法抛出的错误

30420

前端基础进阶(十五):详解 Promise对象

// 简单的ajax原生实现 var url = 'https://hq.tigerbrokers.com/fundamental/finance_calendar/getType/2017-02-26...不过,Node.js 有一个unhandledRejection事件,专门监听捕获的reject错误,上面的脚本会触发这个事件的监听函数,可以在监听函数里面抛出错误。...如果 Promise 内部有捕获的错误,会直接终止进程,并且进程的退出码不为 0。 再看下面的例子。...到了那个时候,Promise 的运行已经结束了,所以这个错误是在 Promise 函数体外抛出的,会冒泡到最外层,成了捕获的错误。...: x is not defined] // carry on [ReferenceError: y is not defined] 上面代码中,第二个catch()方法用来捕获前一个catch()方法抛出的错误

1.1K20

如何优雅处理前端异常?(史上最全前端异常处理方案)

总结一下,大概如下: JS 语法错误、代码异常 AJAX 请求异常 静态资源加载异常 Promise 异常 Iframe 异常 跨域 Script error 崩溃和卡顿 下面我会针对每种具体情况来说明如何处理这些异常...: 捕获到异常:ReferenceError: nam is not defined at :3:15 不能捕获到具体的语法错误,只有一个语法错误提示。...// source:发生错误的脚本URL(字符串) // lineno:发生错误的行号(数字) // colno:发生错误的列号(数字) // error:Error对象(对象) console.log...脚本: const script = document.createElement('script'); script.crossOrigin = 'anonymous'; script.src = url...十二、错误上报 1.通过 Ajax 发送数据 因为 Ajax 请求本身也有可能会发生异常,而且有可能会引发跨域问题,一般情况下更推荐使用动态创建 img 标签的形式进行上报。

2.9K10
领券