先看代码:
@RestController
public class SampleController {
@RequestMapping("/resp")
public String sampleResp(){
System.out.println(1/0);
return "Hello";
}
}
此时使用postman或者httprequester请求,响应状态码500,但是response中如下:
{
"timestamp": 1489320286710,
"status": 500,
"error": "Internal Server Error",
"exception": "java.lang.ArithmeticException",
"message": "/ by zero",
"path": "/resp"
}
第一个问题:
目前项目中没有做统一异常处理和添加ExceptionnReslovers, 有没有能帮忙找出具体源码,就是这些信息从哪里取出来的。
第二个问题:
ResponseEntity中存在于HttpStatus和HttpHeader,可以通过ResponseEntity来返回Http的头和状态, 我想知道源码中具体的response.setStatus和addHeader在哪里?
刚刚使用CSDN,没多少金币,求大神帮忙。
http://blog.csdn.net/linwei_1029/article/details/41674767
由于当时比较忙,忽略了问题解决方法:
实际上,请求错误之后会映射到BasicErrorController中,具体可以查看BasicErrorController源码, 里面会有两个异常处理方法,响应也是在这里面定义的。