En utilisant Spring 3, j'aime créer un gestionnaire d'exception en utilisant la fonction Gestionnaire d'exceptions qui traitera "aucune page trouvée (404)" demandes. J'utilise le code suivant pour ce faire. Mais lorsque je pointe vers une URL qui n'existe pas, le gestionnaire d'exception par défaut défini par Spring est invoqué.
C'est peut-être que je manipule le NoSuchRequestHandlingMethodException exception. Si c'est le cas, alors quelle exception dois-je enregistrer ?
Pourriez-vous jeter un coup d'œil au code suivant et voir ce que je fais de mal ?
NOTE : Si je modifie l'exception dans le @ExceptionHandler à NullPointerException et créer un RequestMapping pour lancer un pointeur nul, cela fonctionnera.
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;
}
}