1.1 创建ExceptionController测试类
import com.example.exception.MyException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ExpectionControll {
@RequestMapping("exception")
public String exce(){
int i = 1 /0;
return "exception";
}
@RequestMapping("myexception")
public String myexce() throws MyException {
throw new MyException("我的异常");
}
}
1.2 创建自定义异常类
public class MyException extends Exception {
public MyException(String msg){
super("我的异常类"+msg);
}
}
2.3 创建MyExceptionHandler全局异常处理类
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
@RestControllerAdvice
public class MyExceptionHander {
@ExceptionHandler(value = Exception.class)
public Object handler(Exception e, HttpServletRequest request){
System.out.println("handler1");
HashMap<String, Object> map = new HashMap<>();
map.put("msg",e.getMessage());
map.put("url",request.getRequestURL());
return map;
}
@ExceptionHandler(value = MyException.class)
public Object handler2(MyException mye,HttpServletRequest request){
System.out.println("handler2");
HashMap<String, Object> map = new HashMap<>();
map.put("msg",mye.getMessage());
map.put("url",request.getRequestURL());
return map;
}
}
访问:http://localhost:8080/exception 以及 http://localhost:8080/myexception测试