错误监控

374 阅读1分钟

捕获错误常用句柄:

  1. window.onerror: 全局捕获js执行的同步错误、异步错误、iframe错误;
  2. window.addEventListener('error'): 全局监控静态资源异常;
  3. window.addEventListener("unhandledrejection": 全局捕获没有 Catch 的 Promise 异常
  4. Vue.config.errorHandler: 全局捕获vue抓到的错误
  5. react componentDidCatch: 全局捕获 react 下的错误信息
  6. window 对象的 load 和 beforeunload事件: 监控页面崩溃,示例:
window.addEventListener('load', function () {
    sessionStorage.setItem('good_exit', 'pending');
    setInterval(function () {
        sessionStorage.setItem('time_before_crash', newDate().toString());
    }, 1000);
  });

  window.addEventListener('beforeunload', function () {
    sessionStorage.setItem('good_exit', 'true');
  });

  if(sessionStorage.getItem('good_exit') &&
    sessionStorage.getItem('good_exit') !== 'true') {
    /*
        insert crash logging code here
    */
    alert('Hey, welcome back from your crash, looks like you crashed on: ' + sessionStorage.getItem('time_before_crash'));
  }

  1. Try-Catch,业务可疑点增加错误捕获。