使用Spring 3创建的ExceptionHandler,我喜欢创造使用的ExceptionHandler标注,将处理请求“发现(404)无页”异常处理程序。我正在使用下面的代码来做到这一点。但是,当我指向一个不存在的URL时,将调用Spring定义的默认异常处理程序。春季3 - 为NoSuchRequestHandlingMethodException
可能是因为我在处理NoSuchRequestHandlingMethodException异常。如果是,那么我应该注册什么样的例外?
请你看看下面的代码,看看我做错了什么?
注:如果我改变例外的@ExceptionHandler到NullPointerException异常,并创建一个RequestMapping抛出空指针,将工作。当对同一类中的@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;
}
}
谢谢。我将使用HandlerExceptionResolver方法。 – sgsweb 2010-07-12 19:28:26
它适合你吗?我仍然遇到同样的问题 – SJS 2013-03-22 13:16:56