You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中@ExceptionHandler无法捕获CustomRuntimeException问题求助

问题排查与修复方案

核心问题分析

你的异常捕获方案失效,根源是两个关键错误:

  • 方法权限错误:@ExceptionHandler标注的处理方法必须是public,Spring容器无法调用private修饰的方法
  • 参数类型不匹配:你抛出的是CustomRuntimeException,但处理方法的参数是CustomException,类型不匹配导致无法触发捕获逻辑

修复后的代码示例

@ControllerAdvice
public class CustomExceptionManager {

    // 其他代码
    
    @ExceptionHandler({CustomRuntimeException.class})
    @ResponseBody
    public ResponseEntity<ErrorResource> handleCustomException(CustomRuntimeException e, HttpServletRequest request, HttpServletResponse response) {
        logger.error("unhandled exception: ", e);
        
        // 其他业务逻辑代码
    }
    
}

额外验证项

  • 确认CustomRuntimeException正确继承自RuntimeException或其子类
  • 确保CustomExceptionManager所在包被Spring的组件扫描机制覆盖(比如在@ComponentScan指定的范围内)
  • 若存在多个@ControllerAdvice类,检查是否有其他处理器优先级更高,抢占了当前异常的处理权

内容的提问来源于stack exchange,提问作者Lorenzo D'Isidoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:20:23