我目前正在尝试设置由@ResponseCode带注释的异常抛出的HTTP状态代码的消息。 我已经定义了例外:
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
public final class BadRequestException extends IllegalArgumentException {
/**
* The serial version UID.
*/
private static final long serialVersionUID = -6121234578480284282L;
public BadRequestException() {
super();
}
public BadRequestException(String message, Throwable cause) {
super(message, cause);
}
public BadRequestException(String message) {
super(message);
}
public BadRequestException(Throwable cause) {
super(cause);
}
}
如果抛出异常,我会在@ExceptionHandler注释方法中再次抛出它:
@ExceptionHandler(RuntimeException.class)
public String handleRuntimeException(Exception e, HttpSession session) {
if (e instanceof BadRequestException) {
throw (BadRequestException)e;
}
return FAILURE;
}
我通常会以这种方式抛出此异常:
if (result.hasErrors()) {
throw new BadRequestException("Bad Request Message.");
}
HTTP状态代码始终仅返回“HTTP状态400 - ”而未设置消息。
THX!
答案 0 :(得分:1)
使用@ResponseStatus注释您的异常处理程序。然后创建一个基本的错误/异常视图,并将异常堆栈跟踪或其他任何内容传递给该视图