500 error handling in Spring MVC

11,938

Solution 1

You need to use a @ControllerAdvice like the example below:

@ControllerAdvice
public class ControllerExceptionHandler {

  private static Logger log = LoggerFactory.getLogger(ControllerExceptionHandler.class);

  @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
  @ExceptionHandler(Exception.class)
  public void notFoundHandler() {
    log.debug("Item not found. HTTP 500 returned.");
  }

}

Solution 2

Can you put a breakpoint in your error controller and it stops as expected? If not, you can try to make a exception handler and then forward message to your controller.

@ExceptionHandler(Exception.class)
public String handleException(final Exception e) {

    return "forward:/serverError";
}
Share:
11,938
java.nazif
Author by

java.nazif

Updated on July 13, 2022

Comments

  • java.nazif
    java.nazif almost 2 years

    I developed my project with hybris.And I want to some template in 500Error.jsp but I can't handle 500 error.Next I can't get jsp file.

    I got this error:

    SEVERE: Servlet.service() for servlet DispatcherServlet threw exception
    java.lang.NullPointerException
    
    Aug 10, 2017 3:14:07 PM org.apache.catalina.core.StandardHostValve custom
    SEVERE: Exception Processing ErrorPage[exceptionType=java.lang.Throwable, location=/serverError]
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
    

    in web.xml file

    <error-page>
            <exception-type>java.lang.Throwable</exception-type>
            <location>/serverError</location>
    </error-page>
    

    in Controller.java following method

    @RequestMapping(value = "serverError", method = RequestMethod.GET)
        public String renderErrorPage(final Model model, HttpServletRequest httpRequest) throws CMSItemNotFoundException {