avec Spring 3, j'aime créer un gestionnaire d'exception en utilisant l'annotation ExceptionHandler qui traitera "aucune page trouvée (404)" demandes. J'utilise le code suivant pour le faire. Mais lorsque je pointe vers une URL qui n'existe pas, le gestionnaire d'exceptions par défaut défini par Spring est appelé. Il se peut que je gère l'exception NoSuchRequestHandlingMethodException. Si c'est le cas, quelle exception devrais-je enregistrer?Spring 3 - Créer ExceptionHandler pour NoSuchRequestHandlingMethodException
Pourriez-vous s'il vous plaît jeter un oeil au code suivant et voir ce que je fais mal?
REMARQUE: Si je change l'exception dans le @ExceptionHandler à NullPointerException et créer un RequestMapping jeter 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;
}
}
Merci. J'utiliserai l'approche HandlerExceptionResolver. – sgsweb
ça a marché pour vous? J'ai toujours le même problème – SJS