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

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Reactive Streams, 241.16690

Last modified: 29 April 2024