SpringBoot 404全局异常处理不生效问题解决

1.问题解释: 

  在学习SpringBoot的过程中发现全局异常不进行处理,在反复百科研究后发现:

    GlobalExceptionHandler.java类中的@ControllerAdvice注解只处理经过Controller的不经过Controller的不进行处理
  由此可得出404的错误@ControllerAdvice是不进行处理的。

 

2.问题解决:

  SpringBoot 默认提供了一个全局的 handler 来处理所有的 HTTP 错误, 并把它映射为 /error。当发生一个 HTTP 错误, 例如 404 错误时, SpringBoot 内部的机制会将页面重定向到 /error 中。

所以我们只要实现一个 /error 映射的 Controller 即可来处理它即可,我们需要实现ErrorController接口,重写handleError方法(SpringBoot2.0不管用,springBoot2.0见我的另一篇帖子SpringBoot2.0 拦截404,500页面方法

(1)创建404界面

 

(2)创建处理404的controller类

package cn.erro;

import org.springframework.boot.autoconfigure.web.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HttpErrorController implements ErrorController {
    
    private static final String ERROR_PATH = "/error";  
       
    @RequestMapping(value=ERROR_PATH)  
       public String handleError(){  
           return "errorpages/404";  
       }
    
    @Override
    public String getErrorPath() {
        return ERROR_PATH;
    }
 
}
(3)运行测试

 参考自:https://blog.csdn.net/x6582026/article/details/76400422

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值