美文网首页
Guava EventBus 和事件处理程序中的异常

Guava EventBus 和事件处理程序中的异常

作者: hemiao3000 | 来源:发表于2021-01-07 15:04 被阅读0次

Guava EventBus文档说明了这一点 “一般情况下,处理程序不应该抛出.如果这样做,EventBus将捕获并记录异常.这很少是错误处理的正确解决方案,不应该依赖它;它仅用于帮助在开发过程中发现问题. “
如果您知道可能发生某些异常,则可以使用EventBus注册SubscriberExceptionHandler并使用它来处理这些异常.

但是如果发生未处理的异常会发生什么?通常情况下,我希望一个未处理的异常“冒泡”调用链.使用SubscriberExceptionHandler时,我可以访问事件处理程序中抛出的原始异常,我只想重新抛出它.但我无法弄清楚如何.

那么,无论是否使用SubscriberExceptionHandler,如何确保事件处理程序中的意外异常不会被“吞噬”?

任何帮助将不胜感激.


如果要处理未经检查的异常,可以实现SubscriberExceptionHandler的方法,如下所示:

public void handleException(Throwable exception, SubscriberExceptionContext context) {
    // Check if the exception is of some type you wish to be rethrown, and rethrow it.
    // Here I'll assume you'd like to rethrow RuntimeExceptions instead of 'consuming' them.
    if (exception instanceof RuntimeException) {
        throw (RuntimeException) exception;
    }

    // If the exception is OK to be handled here, do some stuff with it, e.g. log it.
    ...
}

在创建实现SubscriberExceptionHandler接口的类之后,您可以将其实例传递给EventBus的构造函数:

EventBus eventBus = new EventBus(new MySubscriberExceptionHandler());

完成后,eventBus将使用您的异常处理程序,它将使RuntimeExceptions冒泡.

相关文章

  • Guava EventBus 和事件处理程序中的异常

    Guava EventBus文档说明了这一点 “一般情况下,处理程序不应该抛出.如果这样做,EventBus将捕获...

  • Guava EventBus实现原理

    开篇 EventBus是Guava的事件处理机制,是设计模式中的观察者模式的优雅实现。对于事件监听和发布订阅模式,...

  • Guava - EventBus(事件总线)

    Guava在guava-libraries中为我们提供了事件总线EventBus库,它是事件发布订阅模式的实现,让...

  • Guava——EventBus

    EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监...

  • EventBus

    EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监...

  • guava EventBus使用

    EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监...

  • Google Guava EventBus(事件总线)

    EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于...

  • Guava之EventBus源码

    最近需要使用事件驱动,打算使用EventBus管理事件的注册和分发。于是仔细阅读了下Guava的EventBus实...

  • Guava EventBus应用实例

    来个开头 EventBus是guava包中的一个事件通知组件,可以用来在同一个JVM中,实现事件通知机制。异步和同...

  • Springboot 集成EventBus

    Guava的事件总线EventBus库是事件发布订阅模式的实现,让我们能在领域驱动设计(DDD)中以事件的弱引用本...

网友评论

      本文标题:Guava EventBus 和事件处理程序中的异常

      本文链接:https://www.haomeiwen.com/subject/zoyzoktx.html