在 Web Controller 中,我有一个 @ExceptionHandler 实现来处理我可以获得的某种类型的设备异常。它看起来像这样:
@ExceptionHandler(DeviceException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public void handleException(DeviceException ex) {
log.error("controller caught exception " + ex.getMessage());
return ex.getMessage();
}
我想要实现的是在引发 DeviceException 时返回异常消息。
在客户端,我有这个 jQuery 代码,当前的问题是我似乎无法在错误回调中获取任何 ex.getMessage() 内容,这就是我需要解决的问题。
$.ajax( {
type: "GET",
url: "<c:url value="/x/y/status"/>.json",
dataType: "json",
cache: false,
success: function ( data ){
// use the data
},
error: function(jqXHR, textStatus, errorThrown) {
// problem : all 3 of the data below (responseText etc.) are blank when I've thrown a DeviceException
alert('jqXHR.responseText = ', jqXHR.responseText);
alert('textStatus = ', textStatus);
alert('errorThrown = ', errorThrown);
}
} );
最佳答案
@ResponseStatus 也有一个值字段。这可用于设置任何自定义消息。检查文档@http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/bind/annotation/ResponseStatus.html
关于java - 如何使用Spring的@ExceptionHandler实现自定义错误字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6823766/