首先看一个类:
basicErrorController.class
第一springboot会判断请求头里面有没有text/html (如果包含的话 那么是Browser 请求) 所以放回的是页面 ;
如果请求头里面没有text/html 那么就有是手机端发送来的请求 ,那么我们就返回一个json串(很明显 添加了@ResponseBady注解) 。
我们怎么修改Bowser发送了错误的请求呢? 直接在resources下面创建resources/error 里面创建 404 或者 500 以状态码命名
在页面里面就可以自定义我们想要的格式 了
那么在移动端呢?
我们知道移动端只会放回json串
好我们做处理:
为了 达到移动端请求我们用 PostMan软件做出测试:
1.先说特殊的404捕获 :
我们404通过ExceptionHandler这一种不容易解决,我们单独拿出来解决
写一个类实现了ErrorController ,
@Controller
public class NotFoundExcption implements ErrorController {
@Override
public String getErrorPath() {
return "/error";
}
@RequestMapping("/error")
@ResponseBody
public Object error(){
Map<String, Object> map = new HashMap<>();
map.put("error", "not found");
map.put("code", "404");
return map;
}
}
实现了ErrorController
并且覆盖了内部的/error请求路径这样的话,很明显这样缺点很多(暂时就这样)
2.我们自定义异常:
举个栗子
上图是抛出我们的自己的异常 那么我定义异常
这个message一定给父类 ,这个是基于springmvc的机制
(如果我们不处理这个异常类的话 那么我们的message就会给前端展示出来)
我们开始处理异常
有三个点 就是@ControllerAdvice @ExceptionHandler(UserControllerExption.class) @ResponseBady 就有就可以 了