可以举一个异常的实例吗

来源:8-5 路由和权限校验原理讲解(下)

会游泳的兔子先森

2020-03-08

图片描述
实际业务场景中什么情况会触发这钟异常情况呢

写回答

1回答

Sam

2020-03-09

您好,首先我们看下异常处理部分的源码:

try {
  const { roles } = await store.dispatch('user/getInfo')
  const accessRoutes = await store.dispatch('permission/generateRoutes', roles)
  router.addRoutes(accessRoutes)
  next({ ...to, replace: true })
} catch (error) {
  await store.dispatch('user/resetToken')
  Message.error(error || 'Has Error')
  next(`/login?redirect=${to.path}`)
  NProgress.done()
}

这里异常的可能性有:

1、store.dispatch('user/getInfo') 会请求获取用户信息接口,该接口有可能失败,从而导致 roles 获取失败,此时就走到异常流程

2、store.dispatch('permission/generateRoutes', roles) 生成动态路由失败,也有可能会触发异常,generateRoutes 这个方法的逻辑还是比较复杂的,很容易造成异常

这里做异常处理主要是为了兼容各种意外,从而导致用户看到白屏

0
0

Vue Element+Node.js开发企业通用管理后台系统

基于Element的中后台课程,一套中小型企业通用的后台管理系统

2829 学习 · 1714 问题

查看课程