В Java Reactor: doOnError () или doOnException ()? - PullRequest
1 голос
/ 11 октября 2019

Если я правильно понял разницу между ошибками и исключениями, не должны ли эти функции называться doOnException() или Mono.exception(new Exception("...")) и т. Д.?

Ничто здесь не функционально, только мысль о душе.

1 Ответ

3 голосов
/ 11 октября 2019

Два не одно и то же. Концепция реактивных потоков / реактивного прормирования не привязана к Java, поэтому терминология и соглашения иногда будут отличаться (например, в этом случае).

Выбрасываемый объект Error в Java - это особый подклассThrowable для обозначения серьезных ошибок, от которых ВМ невозможно было бы ожидать восстановления после (StackoverflowError, OutOfMemoryError и т. Д.). Они, конечно, отличаются от Exception (который обычно считается исправимым). Сторонаобратите внимание, однако, что реактор фактически не различает их - он может справиться с любым бросаемым.

error в контексте реактивных потоков - любая неожиданная ошибка / исключение / throwableэто происходит во время обработки потока, который по умолчанию является терминальным событием (но в большинстве реактивных структур, включая реактор, можно восстановить различными способами.)

...