java - 如何使用Spring的@ExceptionHandler实现自定义错误字符串?

标签 java spring spring-mvc

在 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/

相关文章:

java - hibernate 错误: unexpected AST node

java - Spring Boot中请求字段的条件验证

java - 如何正确配置 SimpleMongoRepository?

java - 尝试读取 WEB-INF 中的属性文件时 InputStream 为空

javascript - Spring MVC 和 JQuery

java - 如何遍历 JSONObject?

java - AWS 实例配置文件不适用于 Spring Cloud AWS

java - keystore 更改密码

java - 超链接下拉列表

java - 具有 Spring MVC 的 Jackson 重复嵌套对象不反序列化