阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

现在没权限返回的信息
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
控制台抛出的异常是这个 : 不允许访问,这是Spring Security跑出来的
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
我们在异常处理器里面打个断点看一下
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

重新测试,就跳转到了异常捕获类这里。
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
这是异常的类型
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

这里定义了Map,
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
在Map里面可以定义异常类型对应的错误代码
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
解决方法?在这里再定义类型的错误代码?
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
我们不准备在这里定义,ExceptionCatch是common工程的通用类,很多的子系统都用这个类
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
有些系统它就可以个性的来指定异常类型所对应的错误代码,比如说现在我们这个课程管理这个服务它用到了ExceptionCatch这个类。它完全可以自己个性化定义属于它的异常类型所对应的错误代码
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
简单来说就是不在通用类里面混乱定义,课程管理这个服务个性化定义。说白了就是把代码写在这个课程管理的服务里面,不要在common工程里面去写

自定义异常处理

定义一个exception的包
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

在exception里面定义自己的异常类型、CustomExceptionCatch
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
继承ExceptionCatch
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

ExceptionCatch
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
@ControllerAdvice使用控制器增强的注解
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
定义自己的静态块。builder对象是protected类型的,表示子类也能用
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

在课程里面加一个自己的错误代码。或者在CommonCode里面扩展一个也是可以的
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
里面有一个权限不足的代码
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
通过这种方式来自定义系统用的错误错误代码和异常类型
阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理

重启服务,再来测试


阶段5 3.微服务项目【学成在线】_day18 用户授权_06-方法授权-方法授权测试-无权限异常处理
 

上一篇:Python入门day18——有参装饰器


下一篇:总复习知识点day18