- 前言:由于
Controller
调用Services
,最后调用Mapper
来操作数据库,若Mapper
操作数据库出问题了,此时页面报错会按照调用的原路径层层上报,最后未经处理的异常会上报至框架,最后服务器会向前端返回一个JSON
的报错数据,而前端接收的是对Result
封装过的data
对象中的JSON
数据。
一、异常的处理
1.方案一
- 在
Controlle
r的方法中进行try
…catch
处理
这样会变得很繁琐,每个方法都会添加
try
…catch
语句
2.方案二
- 使用全局异常处理器
简单,优雅,推荐文章来源:https://www.toymoban.com/news/detail-511289.html
二、全局异常处理器
- 定义:
package com.mannor.Exception;
import com.mannor.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* 全局异常处理器
*/
@RestControllerAdvice
public class globalExceptionHandler {
@ExceptionHandler(Exception.class) //定义需要抛出异常的文件类型(Exception.class ---->捕获所有的异常)
public Result ex(Exception ex) {
ex.printStackTrace(); //输出异常的堆栈信息
return Result.error("对不起,操作失败,请联系管理员!");
}
}
前端接收的数据格式是
application/json
为什么我们封装的是Result数据?
注解:@RestControllerAdvice = @ControllerAdvice + @ResponseBody
,@ResponseBody
注解将方法的返回值转化为JSON
的数据格式,然后再响应回去。文章来源地址https://www.toymoban.com/news/detail-511289.html
到了这里,关于全局异常处理器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!