Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @异常处理程序未启动_Java_Spring_Spring Mvc_Exception Handling - Fatal编程技术网

Java @异常处理程序未启动

Java @异常处理程序未启动,java,spring,spring-mvc,exception-handling,Java,Spring,Spring Mvc,Exception Handling,这在谷歌土地上被问了好几次,但我似乎无法将这些决议应用到我的情况中。我的J2EE应用程序使用Spring,我以前使用SimpleMappingExceptionResolver拦截异常,为我的用户显示友好的错误页面。我的团队中有一个人有自己的包,他正在使用一个扩展的异常类作为工具,将验证错误传达给他的用户。因此,现在每当用户输入无效数据时,它都会触发一个异常页面。他拒绝更改代码(即使我认为他应该这样做),所以现在我被迫在处理包或控制器特定的事情时出错 我试图利用@ExceptionHandler

这在谷歌土地上被问了好几次,但我似乎无法将这些决议应用到我的情况中。我的J2EE应用程序使用Spring,我以前使用SimpleMappingExceptionResolver拦截异常,为我的用户显示友好的错误页面。我的团队中有一个人有自己的包,他正在使用一个扩展的异常类作为工具,将验证错误传达给他的用户。因此,现在每当用户输入无效数据时,它都会触发一个异常页面。他拒绝更改代码(即使我认为他应该这样做),所以现在我被迫在处理包或控制器特定的事情时出错

我试图利用
@ExceptionHandler
注释来实现这一点,但它似乎没有启动。我做错了什么?我希望调用
dmapproval
来返回
applicationError
视图

这是我的控制器:

@Controller
public class ExecutiveApprovalController {

    /*omitted stuff*/   

    @ExceptionHandler(Exception.class)
    public String routToErrorHandler(Exception anExc) {
        return "applicationError";
    }

    @RequestMapping(value = "/dmapproval", method = RequestMethod.GET)
    public String dmApproval(Model model, HttpServletRequest request) throws Exception {    

        throw new RuntimeException(); // just for testing exception logic
    }

    /*omitted stuff here, too*/
}    

谢谢你的帮助

您的代码片段看起来不错;您的代码与我正在使用的代码之间的唯一区别在于,我对异常处理程序方法进行了如下注释:

@ExceptionHandler(Throwable.class)

作为旁白;这远不如使用
SimpleMappingExceptionResolver
(听起来您已经知道了!)那么优雅。我会要求你的流氓队友重新考虑他的验证方法,只在特殊情况下使用异常;)

您的代码片段看起来不错;您的代码与我正在使用的代码之间的唯一区别在于,我对异常处理程序方法进行了如下注释:

@ExceptionHandler(Throwable.class)

作为旁白;这远不如使用
SimpleMappingExceptionResolver
(听起来您已经知道了!)那么优雅。我会要求你的流氓队友重新考虑他的验证方法,只在特殊情况下使用异常;)

您是否在servlet-context.xml中添加了此配置

 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver">


您是否在servlet-context.xml中添加了此配置

 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver">


您的调度器中是否实际包含
,或者您是否手动设置了各种视图分解器/方法分解器组件?我正在webmvc-config.xml文件中使用
。您的调度器中是否实际包含
,或者您是否手动设置了各种视图分解器/方法分解器组件?我正在使用
在我的webmvc-config.xml文件中。感谢您的回复。一定是出了什么问题;即使在使用了
Throwable.class
之后,我仍然收到放弃消息
错误500:org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是前端的java.lang.RuntimeException
。不幸的是,我似乎无法改变他的想法。如果你把它改为:@ExceptionHandler(RuntimeException.class)行吗?不,不行。我真的希望这能奏效。也许有一些配置阻止它正常工作?Spring是否有一个
org.springframework.web.servlet.handler
类,该类具有
nothing,其工作方式与您期望的
属性相同,我可以将其设置为false?它必须是其他地方的一些配置。是否确定已删除SimpleMappingExceptionResolver配置?如果不能做到这一点,恐怕我不知道还有什么好建议,我唯一的其他途径就是查看@ControllerAdvice,但我担心这对您来说可能不够细粒度……SimpleMappingExceptionResolver已被注释。你知道我的配置哪里出了问题吗?发布更多的代码在某种程度上会有所帮助吗?谢谢你的回复。一定是出了什么问题;即使在使用了
Throwable.class
之后,我仍然收到放弃消息
错误500:org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是前端的java.lang.RuntimeException
。不幸的是,我似乎无法改变他的想法。如果你把它改为:@ExceptionHandler(RuntimeException.class)行吗?不,不行。我真的希望这能奏效。也许有一些配置阻止它正常工作?Spring是否有一个
org.springframework.web.servlet.handler
类,该类具有
nothing,其工作方式与您期望的
属性相同,我可以将其设置为false?它必须是其他地方的一些配置。是否确定已删除SimpleMappingExceptionResolver配置?如果不能做到这一点,恐怕我不知道还有什么好建议,我唯一的其他途径就是查看@ControllerAdvice,但我担心这对您来说可能不够细粒度……SimpleMappingExceptionResolver已被注释。你知道我的配置哪里出了问题吗?发布更多代码是否有帮助?添加对AnnotationMethodHandlerExceptionResolver的引用也没有帮助。添加对AnnotationMethodHandlerExceptionResolver的引用也没有帮助。