SpringBoot捕获全局异常

版权声明:本文为博主原创文章,转载请说明出处。 https://blog.csdn.net/qq_42361748/article/details/89014527

在Spring中全局捕获异常需要配置切面去捕获,SpringBoot中捕获全局异常已经封装好了,我们可以直接调用
@ExceptionHandler 表示拦截异常
@ControllerAdvice 是 controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
@ControllerAdvice 可以指定扫描范围
@ControllerAdvice 约定了几种可行的返回值,如果是直接返回 model 类的话,使用 @ResponseBody 进行 json转换,如果返回的是json类型的异常,去掉@ResponseBody。

创建包com.shang.Exception,新建一个异常类
在这里插入图片描述

package com.shang.exception;

import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 说明:捕获全局异常类
 * 
 * @author shang
 * @time 2019年4月4日
 */
@ControllerAdvice
public class GlobalException {
	@ExceptionHandler(RuntimeException.class)
	@ResponseBody
	public Map<String, Object> errorHandler(Exception ex) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("code", 500);
		map.put("msg", "系统出差,请售后重试!");
		return map;
	}
}

写一个测试请求
在这里插入图片描述
运行
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42361748/article/details/89014527
今日推荐