[spring-boot] ControllerAdvice异常类
Posted anny0404
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[spring-boot] ControllerAdvice异常类相关的知识,希望对你有一定的参考价值。
package com.example.demo.exception; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.Map; /** * Anny的springboot項目異常類 */ @ControllerAdvice public class MyControllerAdvice /** * 全局捕获异常类, * · 只作用在RequestMapping方法上,所有的异常信息都会被捕获 * @param ex * @return */ @ResponseBody @ExceptionHandler(value = Exception.class) public Map<String,Object> errorHandler(Exception ex) Map<String,Object> map = new HashMap<>(); map.put("code",-1); map.put("msg",ex.getMessage()); return map; /** * 自定义异常 * @param ex * @return */ @ResponseBody @ExceptionHandler(value = BusinessException.class) public Map<String,Object> errorBusinessHandler(BusinessException ex) Map<String,Object> map = new HashMap<>(); map.put("code",ex.getCode()); map.put("msg",ex.getMsg()); return map;
package com.example.demo.exception; /** * 自定义异常类 */ public class BusinessException extends RuntimeException private int code; private String msg; public BusinessException(int code, String msg) super(); this.code = code; this.msg = msg; public int getCode() return code; public void setCode(int code) this.code = code; public String getMsg() return msg; public void setMsg(String msg) this.msg = msg;
package com.example.demo.controller; import com.example.demo.exception.BusinessException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/hello") public class HelloController private static Logger logger = LoggerFactory.getLogger(HelloController.class); @Value("$anny.msg") private String msg; @RequestMapping("/springBoot") public String Hello() //系统异常 // int no = 1/0; // return msg; //自定义异常 throw new BusinessException(999999999,"你瞅啥");
以上是关于[spring-boot] ControllerAdvice异常类的主要内容,如果未能解决你的问题,请参考以下文章
基于spring-boot的测试桩设计--几种常见的controller
Spring-boot 配置Aop获取controller里的request中的参数以及其返回值