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)
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract void处理异常(抽象方法,子类必须实现)voidonApplicationEvent(@NonNull ExceptionEvent event) 处理异常事件Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationListener
supportsAsyncExecution
-
Constructor Details
-
ExceptionEventListener
public ExceptionEventListener()
-
-
Method Details
-
onApplicationEvent
处理异常事件当ExceptionEvent事件发布时,此方法被调用
处理流程: 1. 从事件中获取异常对象 2. 将异常封装为ExceptionWrapper(包含类型、堆栈、状态码等) 3. 调用handleException方法处理
- Specified by:
onApplicationEventin interfaceorg.springframework.context.ApplicationListener<ExceptionEvent>- Parameters:
event- 异常事件
-
handleException
处理异常(抽象方法,子类必须实现)子类需要实现此方法来自定义异常处理逻辑
- Parameters:
e- 异常包装信息
-