您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring @ExceptionHandler不适用于@ResponseBody

Spring @ExceptionHandler不适用于@ResponseBody

你的方法

@ExceptionHandler(IllegalArgumentException.class)
public @ResponseBody Map<String, Object> handleException(final Exception e, final HttpServletRequest request, Writer writer)

不起作用,因为它的返回类型错误。@ExceptionHandler方法只有两种有效的返回类型:

有关更多信息,请参见http://static.springsource.org/spring/docs/3.0.x/spring-framework- reference/html/mvc.html。这是链接中的特定文本:

返回类型可以是String,它被解释为视图名称或ModelAndView对象。

回应评论

Thanx,看来我太过分了。不好。有什么主意如何以xml / json格式自动提供异常?– Sven Haiges 7小时前

这是我所做的事情(我实际上是在Scala中完成的,因此我不确定语法是否完全正确,但是您应该明白要点)。

@ExceptionHandler(Throwable.class)
@ResponseBody
public void handleException(final Exception e, final HttpServletRequest request,
        Writer writer)
{
    writer.write(String.format(
            "{\"error\":{\"java.class\":\"%s\", \"message\":\"%s\"}}",
            e.getClass(), e.getMessage()));
}
Java 2022/1/1 18:17:58 有589人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶