Tomcat异常处理【Spring源码学习】

当没有指定具体控制器异常处理方法时,默认走的异常会被tomcat捕获;

/**
* 基于ControllerAdvice的异常处理只能处理Spring层面的异常;
* 如果我们自定义了过滤器在过滤器中抛出了异常这种情况下需要更高级的异常捕获
* ControllerAdvice无法捕获这部分异常
* */
public static void main(String[] args) {
   AnnotationConfigServletWebServerApplicationContext context =
           new AnnotationConfigServletWebServerApplicationContext(WebConfig.class);
   RequestMappingHandlerMapping handlerMapping = context.getBean(RequestMappingHandlerMapping.class);
   handlerMapping.getHandlerMethods().forEach((RequestMappingInfo k, HandlerMethod v)->{
       System.out.println("映射路径: " + k + "\t方法信息: " + v);
   });
}

我们可以在配置类中添加如下代码
例如在这个配置类中添加MVC的配置

@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {

添加这些bean

// 修改了tomcat服务器的默认页面
@Bean
public ErrorPageRegistrar errorPageRegistry(){
   return  webServerFactory -> webServerFactory.addErrorPages(new ErrorPage("/error"));
}

// tomcat错误后处理器.
@Bean
public ErrorPageRegistrarBeanPostProcessor errorPageRegistrarBeanPostProcessor(){
   return new ErrorPageRegistrarBeanPostProcessor();
}

相关推荐

  1. Tomcat异常处理Spring学习

    2024-07-10 17:16:05       14 阅读
  2. Spring学习-Resource

    2024-07-10 17:16:05       12 阅读
  3. Spring全局异常处理

    2024-07-10 17:16:05       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 17:16:05       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 17:16:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 17:16:05       4 阅读
  4. Python语言-面向对象

    2024-07-10 17:16:05       5 阅读

热门阅读

  1. Leetcode101 判断二叉树是否对称

    2024-07-10 17:16:05       6 阅读
  2. 【深入剖析】Kylin架构全景及其组件详解

    2024-07-10 17:16:05       8 阅读
  3. poi导出值班excel

    2024-07-10 17:16:05       9 阅读
  4. MP公共字段填充

    2024-07-10 17:16:05       10 阅读
  5. 配置 VSCode C++ 调试时, 常见错误教程

    2024-07-10 17:16:05       10 阅读