自定义全局异常处理器,要使用到@ControllerAdvice注解,这个注解最常用的方法是结合@ExceptionHandler用于全局异常的处理,但其作用不仅限于此,用法主要有三点:
(1)结合方法型注解@ExceptionHandler,用于捕获Controller中抛出的指定类型的异常,从而达到不同类型的异常区别处理的目的;
(2)结合方法型注解@InitBinder,用于request中自定义参数解析方式进行注册,从而达到自定义指定格式参数的目的;
(3)结合方法型注解@ModelAttribute,表示其标注的方法将会在目标Controller方法执行之前执行。
首先,写一个自定义异常类:
package com.example.lchtest.springbootdemo1.domain;
/**
* 自定义异常类
*/
public class MyException extends RuntimeException {
private int code;
private String msg;
public MyException(){
super();
}
public MyException(int code, String msg){
this.code = code;
this.msg = msg;
}
// getter setter 省略
}
然后编写一个全局异常处理类,通过@ControllerAdvice注解+ @ExceptionHandler注解完成对不同异常的处理逻辑;
package com.example.lchtest.springbootdemo1.domain;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework