当前位置: 首页> 房产> 建材 > 重庆网站优化seo公司_武汉装修公司排名前十强排行榜_希爱力双效片的作用与功效_seo推广优化的方法

重庆网站优化seo公司_武汉装修公司排名前十强排行榜_希爱力双效片的作用与功效_seo推广优化的方法

时间:2025/7/11 8:32:09来源:https://blog.csdn.net/qq_45055856/article/details/145847732 浏览次数:0次
重庆网站优化seo公司_武汉装修公司排名前十强排行榜_希爱力双效片的作用与功效_seo推广优化的方法

一.目前的异常处理现状

当前我们的项目中如果出现了异常情况,是直接由idea控制台将异常输出出来。

当我们新增一个部门,也叫就业部时,会出现状态码为500的服务器端错误

我们可以看到服务器段出现了异常,原因是就业部重复了。因为我们在构建数据时限制了唯一约束。

现在可以看到服务器给前端响应过来的异常数据格式

可以发现当前格式并不满足统一响应结果Result,因此要将其改造成前端可以解析的统一响应结果Result。

但是当前我们并没有对异常进行任何处理。

二.异常处理

如果Mapper层出现了异常,会将异常向上抛给Service层,Service层继续向上抛给Controller层,Controller层在往上抛给框架,框架会给我们返回这个JSON格式的数据,里面返回的是错误的信息。

那么我们如何将错误信息改为Result格式的数据进行处理呢?

有两个方案,方案一即是在Controller的每个方法中进行try...catch处理,对异常进行捕获,但是由于Controller中的方法众多,会导致代码臃肿。

方案二是定义一个全局异常处理器,将全局的异常进行捕获,这样简单优雅,推荐使用。

三.全局异常处理器

当Controller接收到异常后,会交给全局异常处理器进行处理。要定义一个全局异常处理器,首先要声明@RestControllerAdvice注解, @RestControllerAdvice = @ControllerAdvice + @ResponseBody。这样@ResponseBody注解会将全局异常处理器的返回值作为JSON格式的对象返回给前端。

在其中使用@ExceptionHandler注解来通过ExceptionHandler中的value属性来定义我们要捕获的异常类型,Exception.class代表捕获所有异常。

将异常捕获后打印出异常的堆栈信息,然后返回错误的响应结果给前端。

package com.gjw.exception;import com.gjw.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;@RestControllerAdvice   // 代表定义全局异常处理器  @RestControllerAdvice = @ControllerAdvice + @ResponseBody
public class GlobalExceptionHandler {@ExceptionHandler(Exception.class)      // 通过ExceptionHandler中的value属性来定义我们要捕获的异常类型,Exception.class代表捕获所有异常public Result exceptionHandler(Exception ex) {ex.printStackTrace();return Result.error("对不起,操作失败,请联系管理员!");}
}

关键字:重庆网站优化seo公司_武汉装修公司排名前十强排行榜_希爱力双效片的作用与功效_seo推广优化的方法

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: