使用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