冰灯

云水禅心

  • 首页
  • 归档

  • 搜索
mybatis Dubbo Git Https ELK Elasticsearch logstash Springboot Nginx Java MQ

springboot 全局异常处理

发表于 2018-10-22 | 分类于 Spring | 0 | 阅读次数 322

前言

@ControllerAdvice 使类成为全局的异常处理类;

且只有是以@RequestMapping注解的Contoller才会触发这个类;

类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常,每一个@ExceptionHandler 我们可以使之只处理一类或多类异常

异常处理

 /**全局异常处理类
*Created by fh on 2018-4-20
*/
 public class GlobalException extends Exception{

	 private Integer code;
	 private Object data;
	 public Object getData() {
	return data;
	}
	
	 public void setData(Object data) {
	this.data = data;
	}
	
	 public Integer getCode() {
	 return code;
	 }
	
	 public void setCode(Integer code) {
	this.code = code;
	}
	
	 public GlobalException()
	 {
	 super();
	 }
	
	 public GlobalException(String msg)
	 {
	super(msg);
	 }
	
	public GlobalException(String msg,Integer code) {
	 super(msg);
	 this.code = code;
	 }
	
	 public GlobalException(Integer code,String msg,Object data) {
	 super(msg);
	this.code = code;
	this.data = data;
	 }
 }
 import com.zy.drug.webapi.web.vo.ResultVo;
import org.springframework.web.bind.annotation.ControllerAdvice;
 import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 import javax.servlet.http.HttpServletRequest;
 /**异常处理器类
 *@EnableWebMvc 启用MVC Java config 或 MVC XML namespace
 *@ControllerAdvice 将所有控制器(Controller)增强,与@ExceptionHandler结合实现异常处理
 * 类中可配置多中异常处理
* Created by fh on 2018-4-20
 */

 @ControllerAdvice
@EnableWebMvc
 public class GlobalExceptionHandler {

	 /**抛出GlobalException异常时执行
	 * @ExceptionHandler 把异常处理器应用到所有控制器(应用到所有@RequestMapping注解的方法)在其抛出GlobalException异常时执行
	* @param req
	 * @param e
	 * @return
	 */
	 @ExceptionHandler({GlobalException.class})
	@ResponseBody
	 public ResultVo globalException(HttpServletRequest req, GlobalException e){
	 return ResultVo.fail(e.getCode(),e.getMessage(),e.getData());
	}
	
	 /**抛出GlobalRunTimeException异常时执行
	 * @ExceptionHandler 把异常处理器应用到所有控制器(应用到所有@RequestMapping注解的方法)在其抛出GlobalRunTimeException异常时执行
	* @param req
	* @param e
	 * @return
	 */
	@ExceptionHandler(GlobalRunTimeException.class)
	@ResponseBody
	 public ResultVo gGlobalRunTimeException(HttpServletRequest req, GlobalRunTimeException e){
	return ResultVo.fail(e.getCode(),e.getMessage(),e.getData());
	 }
	
	/**若是没有指定抛出具体异常,则会调用这个方式,
	* @ExceptionHandler 把异常处理器应用到所有控制器(应用到所有*@RequestMapping注解的方法)
	* @param req
	* @param e
	* @return
	*/
	@ExceptionHandler({Exception.class})
	 @ResponseBody
	 public ResultVo exception(HttpServletRequest req, Exception e){
	return ResultVo.fail(80001,"系统异常:"+e.getMessage(),null);
	}
	 /**若是没有指定抛出Error具体异常,则会调用这个方式
	* @ExceptionHandler 把异常处理器应用到所有控制器(应用到所有@RequestMapping注解的方法)
	* @param req
	* @param e
	* @return
	*/
	 @ExceptionHandler({Error.class})
	@ResponseBody
	 public ResultVo errorException(HttpServletRequest req, Error e){
	 return ResultVo.fail(80001,\"系统异常:\"+e.getMessage(),null);
	 }
}
# mybatis # Dubbo # Git # Https # ELK # Elasticsearch # logstash # Springboot # Nginx # Java # MQ
elasticsearch之java api
logstash grok
冰灯

冰灯

雁过无痕,敲出人生

23 日志
9 分类
11 标签
RSS
Github StackOverflow
Creative Commons
Links
  • 点滴记录
  • Zero
© 2021 冰灯