Inspectopedia Help

Throw statement in Reactive operator

Reports throw expressions in the Reactor/RxJava operator code.

Throwing exceptions from a Reactor/RxJava operator indicates a possible problem, because you can return a "Reactive-like" error: Mono.error() or Flowable.error() from flatMap(), or call sink.error() from the Reactor's handle() operator.

Also, Reactor factory methods allow returning checked exceptions without any errors, while throwing such exceptions without the Exceptions class leads to a compilation error.

Example:

Flux.just(1, 2, 3).flatMap(i -> { throw new RuntimeException(); })

After the quick-fix is applied:

Flux.just(1, 2, 3).flatMap(i -> { return Flux.error(new RuntimeException()); })

New in 2019.3

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Reactive Streams, 233.SNAPSHOT

Last modified: 13 July 2023