天空微算
天空微算
  • 发布:2019-06-24 09:39
  • 更新:2019-06-24 11:56
  • 阅读:5282

如何捕获 app 的 onError

分类:uni-app

根据文档 常见问题 中的如何捕获 app 的 onError
怎么无法捕获异常错误

2019-06-24 09:39 负责人:无 分享
已邀请:
天空微算

天空微算 (作者)

  1. 通过 vue 本身的全局捕获

    在main.js中  
    //系统错误捕获  
    const errorHandler = (err, vm, info) => {  
    // handle error  
    // `info` 是 Vue 特定的错误信息,比如错误所在的生命周期钩子  
    // 只在 2.2.0+ 可用   
    
    // console.error('抛出全局异常');  
    // console.log("message: " + err.message);  
    // console.log("stack: " + err.stack);  
    // console.error(err);  
    
    var log = {  
        message: err.message,  
        stack: err.stack  
    }  
    uni.setStorage({  
        key: 'errlog',  
        data: log,  
        success: function() {  
            console.log('success');  
        }  
    });   
    }  
    Vue.config.errorHandler = errorHandler;  
    Vue.prototype.$throw = (error) => errorHandler(error, this);

2.在 app 的 应用生命周期中加上

onError: function(err) {  
            // 这里只能捕获方法内的异常,不能捕获生命周期中的逻辑异常  
            console.log('方法内异常');  
            var json = JSON.stringify(err);  
            var arr = json.split("\\n");   
            var log = {  
                message : arr[1],  
                stack: err  
            }    
            this.$throw(log)   
        }

该问题目前已经被锁定, 无法添加新回复