【问题标题】:In Java Reactor : doOnError() or doOnException()?在 Java Reactor 中:doOnError() 还是 doOnException()?
【发布时间】:2019-10-11 09:52:29
【问题描述】:

如果我正确理解错误和异常之间的区别,这些函数不应该命名为doOnException()Mono.exception(new Exception("...")) 等吗?

这里没有任何功能,只是一个淋浴的想法。

【问题讨论】:

  • 实际上,这些方法的签名包含Throwable,所以它也处理Error。我认为它只是一个名称,表明它处理执行错误,而不是Error对象
  • 我支持你的观点。

标签: java exception project-reactor reactor


【解决方案1】:

两者不是一回事。反应式流/反应式编程的概念与 Java 无关,因此术语和约定有时会有所不同(例如在这种情况下)。

Java 中的Error 可抛出对象是Throwable 的特定子类,表示VM 永远无法合理恢复的严重错误(StackoverflowErrorOutOfMemoryError 等)当然这些,与 Exception 不同(通常被认为是可恢复的)。但是,旁注是,reactor 实际上并没有区分这些 - 它可以处理任何可抛出的问题。

反应式流上下文中的error任何在处理流时发生的意外错误/异常/可抛出事件,默认情况下是终端事件(但在大多数反应式框架中,包括反应器,可以通过多种方式恢复。)

【讨论】:

  • 这个。这个名字实际上更多地指的是来自 Reactive Streams 规范的onError 信号的概念,而不是来自 Java 的 Error 类的概念。
猜你喜欢
  • 1970-01-01
  • 2019-11-06
  • 2019-09-06
  • 2021-03-13
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 2020-01-22
  • 1970-01-01
相关资源
最近更新 更多