export default async ({ app }) => { /* window.addEventListener('error', e => onWindowError(e)); window.addEventListener('unhandledrejection', e => onWindowRejection(e)); ,onWindowError(event) { errorHandler(event.error); } ,onWindowRejection(event) { errorHandler(event.reason); } */ app.config.errorHandler = (err, vm, info) => { errorHandler(err, vm) } function errorHandler (err, vm) { let message let tMessage let res = err.response // XXX: Compatibility with old JSON service if (err.name === 'JsonException') { res = { status: err.statusCode, data: { error: { message: err.message } } } } if (res) { const status = res.status if (status >= 400 && status < 500) { switch (status) { case 401: tMessage = 'loginFailed' break case 403: tMessage = 'authenticationRequired' vm.$router.push('/login') break case 404: tMessage = 'notFound' break default: message = res.data.error.message } } else if (status >= 500) { tMessage = 'internalServerError' } } else { tMessage = 'somethingWentWrong' console.error(err) } if (tMessage) { message = vm.$t(tMessage) } vm.$q.notify({ message, type: 'negative' }) } }