Class ExceptionEventListener

java.lang.Object
tech.riemann.nif.starter.exception.event.ExceptionEventListener
All Implemented Interfaces:
EventListener, org.springframework.context.ApplicationListener<ExceptionEvent>
Direct Known Subclasses:
WechatWorkRobotExceptionEventListener

public abstract class ExceptionEventListener extends Object implements org.springframework.context.ApplicationListener<ExceptionEvent>
异常事件监听器抽象类

实现Spring的ApplicationListener接口,监听ExceptionEvent事件

主要功能: 1. 接收GlobalExceptionHandler发布的异常事件 2. 将异常信息封装为ExceptionWrapper对象 3. 自动识别异常类型并设置对应的HTTP状态码 4. 调用子类实现的handleException方法处理异常

异常码映射规则: - AuthorizationException:403(FORBIDDEN) - ValidationException / MethodArgumentNotValidException:400(BAD_REQUEST) - 其他异常:500(INTERNAL_SERVER_ERROR)

使用场景: - 继承此类并实现handleException方法 - 可以自定义异常处理逻辑(如发送告警、记录日志等)

使用示例:

public class MyExceptionListener extends ExceptionEventListener {
        @Override
        public void handleException(ExceptionWrapper e) {
                // 自定义异常处理逻辑
                log.error("发生异常: {}", e.getMessage());
        }
}
Author:
kerbores(kerbores@riemann.tech)
  • Constructor Details

    • ExceptionEventListener

      public ExceptionEventListener()
  • Method Details

    • onApplicationEvent

      public void onApplicationEvent(@NonNull ExceptionEvent event)
      处理异常事件

      当ExceptionEvent事件发布时,此方法被调用

      处理流程: 1. 从事件中获取异常对象 2. 将异常封装为ExceptionWrapper(包含类型、堆栈、状态码等) 3. 调用handleException方法处理

      Specified by:
      onApplicationEvent in interface org.springframework.context.ApplicationListener<ExceptionEvent>
      Parameters:
      event - 异常事件
    • handleException

      public abstract void handleException(ExceptionEventListener.ExceptionWrapper e)
      处理异常(抽象方法,子类必须实现)

      子类需要实现此方法来自定义异常处理逻辑

      Parameters:
      e - 异常包装信息