小编sgs*_*web的帖子

Spring 3 - 为NoSuchRequestHandlingMethodException创建ExceptionHandler

使用Spring 3,我喜欢使用ExceptionHandler注释创建一个异常处理程序,该注释将处理"找不到页面(404)"请求.我使用以下代码来执行此操作.但是当我指向一个不存在的URL时,将调用Spring定义的默认异常处理程序.

可能是我正在处理NoSuchRequestHandlingMethodException异常.如果是,那么我应该注册什么例外?

请你看看下面的代码,看看我做错了什么?

注意:如果我将@ExceptionHandler中的异常更改为NullPointerException并创建一个RequestMapping来抛出空指针,那将会起作用.

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.web.servlet.ModelAndView;

    @Controller
    public class GeneralHandler {
      private final Log logger = LogFactory.getLog(getClass());

      @ExceptionHandler(NoSuchRequestHandlingMethodException.class)
      public ModelAndView handleException (NoSuchRequestHandlingMethodException ex) {
        ModelAndView mav = new ModelAndView();
        logger.error("Exception found: " + ex);
        return mav;
      }
    }
Run Code Online (Sandbox Code Playgroud)

java spring exception-handling spring-mvc

28
推荐指数
2
解决办法
4万
查看次数

标签 统计

exception-handling ×1

java ×1

spring ×1

spring-mvc ×1