分享免费的编程资源和教程

网站首页 > 技术教程 正文

全局处理Controller层异常及通过@Valid注解巧妙的验证参数

goqiw 2024-09-24 16:04:28 技术教程 27 ℃ 0 评论

项目中,我们通常会把事务配置在 Service层,当update或者insert操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚,这样就不会存在脏数据了。

这样,我们的 Controller 层就不得不进行 try-catch Service 层的异常,否则会返回一些不友好的错误信息到客户端。但是,Controller 层每个方法体都写一些模板化的 try-catch 的代码,很难看也难维护,特别是还需要对 Service 层的不同异常进行不同处理,总之就是很难搞。

这里就通过@ControllerAdvice + @ExceptionHandler 进行全局的 Controller 层异常处理,另外附赠通过@Valid注解验证参数

好了,鉴于头条对代码的支持太烂,这里就直接上图了

@ControllerAdvice 注解定义全局切面类

@ExceptionHandler 注解声明异常处理方法,只拦截异常,并拦截所有异常

这样直接在service中抛出异常就可以了,如直接 throw new xxxxException()异常就可以

嘿嘿,下次再讲@valid注解吧

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表