如果没处理
tomcat默认返回500,并且包装了返回的body,含请求时间、返回状态码、什么错误、错误信息,请求路径
controller如下
@RestController
public class MyController {
@GetMapping("/hello")
public String getString(){
int i = 1/0;
return "Hello World!";
}
}
如果标准http返回
会返回自定义的body和状态码
controller如下
@RestController
public class MyController {
@GetMapping("/hello")
public String getString(){
int i = 1/0;
return "Hello World!";
}
@ExceptionHandler({RuntimeException.class})
public ResponseEntity<HttpResponse>error(Exception e){
return ResponseEntity
.status(HttpStatus.BAD_REQUEST)
.body(new HttpResponse<Object>(110,e,"报警"));
}
}
这也是一个标准返回
返回的状态状态码默认500,@ResponseStatus一定要有,默认状态码是500
@GetMapping("/rest/v1/mockError")
public String mockError() {
int i = 1/0;
return "mockError";
}
@ExceptionHandler({RuntimeException.class})
@ResponseStatus
public String error(RuntimeException e){
return "error";
}
如果不是标准返回
那么状态码是200,这个不对的
controller如下
@RestController
public class MyController {
@GetMapping("/hello")
public String getString(){
int i = 1/0;
return "Hello World!";
}
@ExceptionHandler({RuntimeException.class})
public HttpResponse error(Exception e){
return new HttpResponse<Object>(110,e,"报警");
}
}