Spring 3 - 为 NoSuchRequest 创建 ExceptionHandlerHandlingMethodException
2022-09-01 13:57:41
使用Spring 3,我喜欢使用异常处理程序注释创建一个异常处理程序,该注释将处理“未找到页面(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;
}
}