js error监控
window.onerror = function(message, source, lineno, colno, error) { ... }
功能参数:
message:错误消息(字符串)。event在HTMLonerror=""处理程序中以(sic!)的形式提供。source:引发错误的脚本的URL(字符串)lineno:引发错误的行号(数字)colno:发生错误的行的列号(数字)error:错误对象(对象)
js语法错误
通过window.onerror来捕获JavaScript异常
//监控js错误
window.onerror = function(msg,_url,line,col,error){
//采用异步的方式,避免阻塞
setTimeout(function(){
//不一定所有浏览器都支持col参数,如果不支持就用window.event来兼容
col = col || (window.event && window.event.errorCharacter) || 0;
if (error && error.stack){
//msg信息较少,如果浏览器有追溯栈信息,使用追溯栈信息
defaults.msg = error.stack.toString(); }else{
defaults.msg = msg;
}
defaults.data=JSON.stringify({
resourceUrl:_url,
pageUrl:location.href,
category:'js error',
line:line,
col:col
});
defaults.t=new Date().getTime();
defaults.level='error';
// 合并上报的数据,包括默认上报的数据和自定义上报的数据
var reportData=Object.assign({},params.data || {},defaults);
// 把错误信息发送给后台
report(url,reportData)
},0);
};
try catch
1、事情还有得挽回,换条路走
try {
执行某个逻辑
} catch (e) {
出问题鸟,换个逻辑执行
} 2、体面的退出
try {
正常流程
} catch (e) {
弹个框告诉用户不好意思出了点问题
如果是用户的错就告诉用户什么地方错了
如果是程序的错,就告诉用户不好意思没法执行
}
参考文档
https://www.jianshu.com/p/fd6ddace0a87
https://www.cnblogs.com/yangheng/p/6018224.html
js error监控的更多相关文章
- 搭建前端监控系统(二)JS错误监控篇
===================================================================== 前端性能监控系统: DEMO地址 GIT代码仓库地址 ...
- Webfunny知识分享:JS错误监控
现在的前端开发已不再是刀耕火种的年代了,各种框架.编译工具层出不穷,前端监控系统也不甘其后,遍地开花. 前端正承受着越来越重的职责,前端的业务也变得越来越复杂,此时此刻我们就更需要一套完善的监控系统来 ...
- 前端监控系列2 |聊聊 JS 错误监控那些事儿
作者:彭莉,火山引擎 APM 研发工程师.2020年加入字节,负责前端监控 SDK 的开发维护.平台数据消费的探索和落地. 有必要针对 JS 错误做监控吗? 我们可以先假设不对 JS 错误做监控,试想 ...
- 如何用selenium webdriver 捕获js error
### 问题 捕捉页面上js error ### 解决办法 从Selenium webdriver log 中解析 # -*- coding:utf8 -*- import unittest from ...
- angular js 自定义js错误处理(Angularjs js error handler)
使用AngularJS的时候,对JS错误如何自定义处理?(比如用Google Analytics记录angularjs使用中出现的js错误) AngularJS自带一个错误处理service:$exc ...
- vue解决启动报错cjs loader.js Error: Cannot find module '../config'问题
vue解决启动报错cjs loader.js Error: Cannot find module '../config'问题 今天下载了一个开源项目一直运行不了,折腾了半天才找到问题所在,config ...
- linux下日志文件error监控报警脚本分享
即对日志文件中的error进行监控,当日志文件中出现error关键字时,即可报警!(grep -i error 不区分大小写进行搜索"error"关键字,但是会将包含error大小 ...
- Node.js Error: listen EADDRNOTAVAIL
1 前言 nodejs部署在云服务器,外网用域名加端口访问不进来,但在服务器本地用127.0.0.1加端口可以访问,并且端口已经放开,然后只能排查配置.此文章仅作为记录使用. 如果端口和另一个的端口一 ...
- webpack报错:Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: Cannot find module 'babel-preset-env' from '...' - Did you mean "@babel/env"?
webpack报错:Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: Cannot find mo ...
随机推荐
- JVM、JRE、JDK的区别
什么是Java虚拟机(JVM)?为什么Java被称作是"平台无关的编程语言"? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行 ...
- RabbitMQ:伪延时队列
目录 一.什么是延时队列 二.RabbitMQ实现 三. 延时队列的问题 四.解决RabbitMQ的伪延时方案 ps:伪延时队列先卖个关子,我们先了解下延时队列. 一.什么是延时队列 所谓延时队列是指 ...
- Shell输入命令时一些有用的快捷键
Ctrl + u: 从光标所在位置一直删除到开头 Ctrl + k: 从光标所在位置一直删除到尾 Ctrl + b: 光标向后移动一个字符 Ctrl + f: 光标后前移动一个字符 Alt + b: ...
- Python中的时间模块和日期模块
Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间 ...
- vue 中使用scss
1.下载 npm install --save-dev sass-loader npm install --save-dev node-sass npm install sass-loader --s ...
- [CSU1806]Toll
题目:Toll 传送门:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1806 题目简述:给定n个点m条有向边的有向图,每条边的花费是$b_i ...
- 控制透明度(兼容IE FF)
filter:alpha(opacity=70);opacity:0.7;
- 测开之路五十七:实现runner和测试报告
准备测试用例 from fox.case import Casefrom src import Calculator class TestCalculator(Case): def setUp(sel ...
- Series序列
import pandas as pd '''Series序列:1.序列 的声明,指定index列标签2.查看列索引(index)和元素 (values)3.选择内部元素4.为元素赋值5.用Numpy ...
- Qt Creator 中的插件Plugin, 区分说明。。。
Qt Creator 中可以创建 三中类型的插件Plugin: 1.用的最多的,派生自QGenericPlugin类: 在新建Library, Plugin类型工程中,新建. 调用使用QPlugi ...