diff --git a/src/main.js b/src/main.js index 06f254fa..c3ea1f0e 100644 --- a/src/main.js +++ b/src/main.js @@ -33,9 +33,6 @@ app.use(store); app.use(router); app.use(ElementPlus, {size: 'small', locale: locale}); -//全局代码错误捕捉 -app.config.errorHandler = errorHandler - //注册全局组件 app.component('scTable', scTable); app.component('scFilterBar', scFilterBar); @@ -47,5 +44,8 @@ app.component('scTableSelect', scTableSelect); //注册全局指令 app.directive('auth', auth) +//全局代码错误捕捉 +app.config.errorHandler = errorHandler + //挂载app app.mount('#app'); diff --git a/src/utils/errorHandler.js b/src/utils/errorHandler.js index 241f169e..62e32579 100644 --- a/src/utils/errorHandler.js +++ b/src/utils/errorHandler.js @@ -1,11 +1,9 @@ /** * 全局代码错误捕捉 - * 比如split一个null 就会被捕捉到 + * 比如 null.length 就会被捕捉到 */ -import { ElNotification } from 'element-plus'; - -export default (error)=>{ +export default (error, vm)=>{ var errorMap = { InternalError: "Javascript引擎内部错误", ReferenceError: "未找到对象", @@ -17,11 +15,14 @@ export default (error)=>{ } var errorName = errorMap[error.name] || "未知错误" - ElNotification.error({ - title: errorName, - message: error - }); - - console.warn('[SCUI]: 捕捉到错误'); + console.warn(`[SCUI error]: ${error}`); console.error(error); + //throw error; + + vm.$nextTick(() => { + vm.$notify.error({ + title: errorName, + message: error + }); + }) } diff --git a/src/views/test/codebug/index.vue b/src/views/test/codebug/index.vue new file mode 100644 index 00000000..83ad6a6a --- /dev/null +++ b/src/views/test/codebug/index.vue @@ -0,0 +1,64 @@ + + + + + + +