我使用以下代码来处理使用Scroll View
注释的类RuntimeException
中的所有类型的异常
@ControllerAdvice
在@ExceptionHandler(RuntimeException.class)
public ResponseEntity<JSONObject> RuntimeExceptionHandler(RuntimeException e) throws JSONException {
JSONObject response = new JSONObject();
response.put("message", e.getMessage());
return new ResponseEntity<JSONObject>(response, HttpStatus.BAD_REQUEST);
}
:
ValidationException
这不是我的预期。状态代码不是{
"timestamp": 1496377230943,
"status": 500,
"error": "Internal Server Error",
"exception": "javax.validation.ValidationException",
"message": "Name does not meet expectations",
"path": "/signup"
}
,json与BAD_REQUEST
不同。
如果我将response
更改为JSONObject
并传入字符串消息而不是json对象,则可以正常工作。我还在String
语句之前设置了一个断点,return
看起来很好。
注意:还有另一篇帖子here:
response
注释方法,但我没有。@ResponseBody
答案 0 :(得分:3)
如果您需要返回的JSON格式,请进行快速修复:
@ExceptionHandler(RuntimeException.class)
public ResponseEntity<String> RuntimeExceptionHandler(RuntimeException e) {
JSONObject response = new JSONObject();
response.put("message", e.getMessage());
return new ResponseEntity<String>(response.toString(), HttpStatus.BAD_REQUEST);
}