인프런 커뮤니티 질문&답변

azsxd34님의 프로필 이미지
azsxd34

작성한 질문수

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 2부

onErrorReturn, onErrorResume

onErrorResume을 사용하지 않는 모든 경우 예외 발생 시, 시퀀스는 종료되나요?

작성

·

17

0

안녕하세요.

onErrorResume을 사용하지 않는 모든 케이스에서는 시퀀스가 중단되는 것인지 궁금합니다.

또는 다른 핸들링 방법이 있을까요? 검색해볼만한 키워드를 잘 모르겠어 여쭤봅니다.

항상 감사합니다!

답변 2

0

Kevin님의 프로필 이미지
Kevin
지식공유자

안녕하세요. 주말이라서 답변이 좀 늦었네요.

onErrorResume 같은 에러 처리를 위한 Operator를 사용하지 않으면 기본적으로 Sequence 내에서 에러가 발생하면 Subscriber에게 onError Signal 형태로 에러 정보가 Exception 형태로 전달됩니다.

 

다만, onErrorResume을 사용하지는 않지만 특정 상황에서 onErrorContinue Operator를 사용하거나 retry Operator를 사용하면 에러 발생 시점에 Sequence가 즉시 중단되지 않을 수는 있습니다.

방금 말씀 드린 내용은 error handling 섹션에 있는 영상으로 확인하실 수 있습니다.

 

AI 인턴이 답변 남겨두었듯이 doOnError 같은 Operator를 이용하면 에러를 직접적으로 핸들링하는건 아니지만 에러가 발생했을 때, 로그를 남긴다든지 하는 후속 작업을 통해 에러를 간접적으로 알려서 추후에 디버깅을 할 수 있습니다.

 

디버깅 관련해서는 1부 영상을 확인하시면 될 것 같습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. azsxd34님.

RxJava나 Reactor 같은 리액티브 프로그래밍에서는 기본적으로 에러가 발생하면 시퀀스가 종료됩니다. onErrorResume이나 그 유사한 방법으로 별도로 에러를 처리하지 않으면, 에러 발생 시 스트림이 중단될 수 있습니다.

에러 핸들링 방법:
1. onErrorResume: 에러가 발생했을 때 대체 시퀀스를 제공하여 스트림을 이어나갈 수 있습니다.
2. onErrorReturn: 에러 발생 시 기본값을 반환하여 스트림을 종료할 수 있습니다.
3. doOnError: 에러 발생 시 로그를 기록하거나, 다른 처리를 실행할 수 있습니다.
4. onErrorContinue: 특정 에러를 무시하고, 다음 데이터 처리로 계속 진행할 수 있습니다. 이는 주의해서 사용해야 하며, 모든 에러가 무시되므로 데이터의 정합성을 해칠 수 있습니다.

위의 방법들을 사용하여 에러를 처리하지 않으면, 일반적으로 에러가 발생하면 해당 스트림은 종료됩니다.

더 자세한 설명과 예제는 강의 자료나 공식 문서를 참고하시면 좋습니다. 다음 자료들을 참고해보세요:

더 궁금한 점이나 추가적인 질문이 있으시면 언제든지 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

azsxd34님의 프로필 이미지
azsxd34

작성한 질문수

질문하기