当前位置: 首页 > 面试题库 >

如何在Spring Boot / MVC中创建错误处理程序(404、500…)?

余弘毅
2023-03-14
问题内容

我试图在Spring Boot / MVC中创建CUSTOM全局错误处理程序。我读了很多文章,什么都没有…:/请帮我。

我尝试创建这样

@Controller
public class ErrorPagesController {

    @RequestMapping("/404")
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public String notFound() {
        return "/error/404";
    }

    @RequestMapping("/403")
    @ResponseStatus(HttpStatus.FORBIDDEN)
    public String forbidden() {
        return "/error/403";
    }

    @RequestMapping("/500")
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public String internalServerError() {
        return "/error/500";
    }

}

我用这种方式:

`

@Configuration
public class ErrorConfig implements EmbeddedServletContainerCustomizer {
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
        container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404"));
    }
}

问题答案:

你可以尝试以下代码:

@ControllerAdvice
public class ExceptionController {
    @ExceptionHandler(Exception.class)
    public ModelAndView handleError(HttpServletRequest request, Exception e)   {
        Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Request: " + request.getRequestURL() + " raised " + e);
        return new ModelAndView("error");
    }

    @ExceptionHandler(NoHandlerFoundException.class)
    public ModelAndView handleError404(HttpServletRequest request, Exception e)   {
        Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Request: " + request.getRequestURL() + " raised " + e);
        return new ModelAndView("404");
    }
}


 类似资料:
  • 几个小时以来,我试图在Spring Boot/MVC中创建一个自定义的全局错误处理程序。我读了很多文章,什么也没读。 这就是我的错误类: 我试着创建一个这样的类

  • 我正在使用Express.js并尝试创建一个catchall异步错误处理程序。假设我有三条路都可能出错, 在这三条路由中,所有getXX函数都可能抛出错误。 我希望所有路由都只有一个异步处理程序。类似这样的东西 所以我不必尝试/捕捉每一个可能抛出错误的地方。对此有什么解决办法吗? 提前道谢!

  • 问题内容: 我的.htaccess将所有请求重定向到。然后,PHP脚本检查请求的页面是否在其页面数组中。 如果没有,如何模拟错误404?我试过了,但是并没有导致我的404页面在出现时通过配置。 我是否认为重定向到错误404页面是错误的? 问题答案: 用于生成404页的最新答案(从PHP 5.4或更高版本开始)是使用: 并非绝对必要,但是可以确保您不会继续正常执行。

  • 我在我的Web应用程序中使用Spring MVC。我一直在尝试各种选项来返回应用程序中引发的各种异常的自定义错误页面。我已经使用注释做到了这一点。我的全局异常处理程序类如下: 但我面临的问题是HTTP 404错误。是否有任何方法可以使用此注释处理HTTP状态错误。我还使用Apache tiles,我使用tiles和ftl页面呈现页面。

  • 当我传递无效的json格式时,我得到了400个Http响应, 我想返回自定义的json消息而不是这样,有人能建议在Spring 4.1中该怎么办吗? 使用ControllerAdvision处理执行,但它不起作用。

  • 如何在SpringMVC中实现自定义http错误处理。 例如:我有一个urlhttp://localhost:8080/demo/canvas 它显示我的画布页面,但如果用户错过了网址并键入http://localhost:8080/demo/canva 它显示了Tomcat呈现的HTTP状态404。我希望它是自定义jsp页面。