매일 매일, 차곡 차곡 쌓기



완벽하지 않은 것을 두려워 말며,
완성도를 높히는데 집중하자.

Spring/Webflux

Handling errors

blockbuddy93 2024. 3. 5. 16:10

error

파라미터로 지정된 에러로 종료하는 Mono 또는 Flux를 생성합니다.

Java의 throw 키워드를 사용해 예외를 의도적으로 throw 하는것 처럼 Error signal을 Downstream으로 전송한다.

 

onErrorReturn

에러가 발생했을 때, onError signal을 Downstream 으로 전파하지 않고, 대체 값을 emit한다.

Java에서 try - catch 문의 catch 블록에서 발생한 예외 대신에 대체 값을 리턴하는 방식과 유사하다.

 

onErrorResume

에러가 발생했을 때, onError signal을 Downstream으로 전파하지 않고 대체 Publisher를 리턴한다.

즉, 에러로 인해 중단된 Sequenece를 다시 재개하는 역할을 한다.

 

onErrorContinue

에러가 발생했을 때, 에러가 발생한 데이터는 제거하고 후속 데이터를 계속 emit한다.

데이터 흐름이 일반적인 흐름과 반대로 동작하기 때문에 의도하지 않은 동작을 일으킬 수 있으므로 권장되는 방식은 아니다.

 

onErrorMap

에러가 발생했을 때, 파라미터로 지정된 에러(예외) 타입과 일치하면 또 다른 타입의 예외로 변환하여 Downstream으로 전달한다.

에러(예외) 타입이 일치하지 않으면 원래 발생한 에러(예외)를 Downstream으로 전달한다.

 

retry

데이터 emit 중 에러가 발생하면 파라미터로 입력한 횟수만큼 원본 Publisher의 Sequenece를 다시 구독한다.

즉 원본 Publisher의 데이터를 처음부터 다시 emit한다.

 

 

'Spring > Webflux' 카테고리의 다른 글

Multicasting a Flux to several Subscribers  (0) 2024.03.05
Splitting a Flux  (0) 2024.03.05
Peeking into a sequence  (0) 2024.03.04
Transforming an existing sequence  (0) 2024.03.04
Filtering a sequence  (0) 2024.03.04