Fail
์ ๋ค๋ฆญ ๊ตฌ์กฐ์ฒด | ํน์ ์๋ฌ์ ํจ๊ป ์ฆ์ ์ข
๋ฃํ๋ Publisher
๋ ๊ฐ์ ์ด๋์
๋ผ์ด์ ๋ฅผ ์ ๊ณตํ๋ค.
init(error:)
Error ํ๋กํ ์ฝ์ ์ฑํํ๋ ๊ฐ์ error ์ธ์์ ๋๊ฒจ์ฃผ์ด ํด๋น ์๋ฌ๋ฅผ ๋ด๊ณ ์ฆ์ ์ข
๋ฃํ๋ Publisher๋ฅผ ๋ง๋ ๋ค.
init(outputType:failure:)
Error ํ๋กํ ์ฝ์ ์ฑํํ๋ ๊ฐ์ failure ์ธ์์ ๋๊ฒจ์ฃผ์ด ํด๋น ์๋ฌ๋ฅผ ๋ด๊ณ ์ฆ์ ์ข
๋ฃํ๋ Publisher๋ฅผ ๋ง๋ ๋ค.
outputType์๋ ํน์ Output ํ์
์ ๊ฐ์ง Subscriber์ Publisher์ ํจ๊ป ๋์ํด์ผ ํ ๋ Output ํ์
์ ๋ฉํ ํ์
์ ๋๊ฒจ์ค๋ค.
Just๊ฐ ํน์ ๊ฐ์ ๋ด๋ ค์ฃผ๊ณ ์ข
๋ฃํ๋ค๋ฉด, Fail์ ํน์ ์๋ฌ์ ํจ๊ป ์ฆ์ ์ข
๋ฃํ๋ค.
Fail(error: error)
.sink(receiveCompletion: { _ in print("Combine Fail Error") }, receiveValue: { })
.store(in: &cancellables)
// Combine Fail Error
Emtpy๋ ๊ฐ์ ๋ด์ง ์์ผ๋ฏ๋ก receiveValue ํด๋ก์ ์์๋ ๋์์ ํ์ธํ ์ ์๊ณ , receiveCompletion ํด๋ก์ ์์ ์ข
๋ฃํ๋ ๋์์ ํ์ธํ ์ ์๋ค.
error ์คํผ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค.
Observable<Void>.error(error)
.subscribe(onError: { _ in print("RxSwift Fail Error") })
.disposed(by: disposeBag)
// RxSwift Fail Error
init(error:) ์ด๋์
๋ผ์ด์ ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค.
Combine๊ณผ ๊ฐ์ด ๊ฐ์ ๋ด์ง ์์ผ๋ฏ๋ก startWithValues ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋์์ ํ์ธํ ์ ์๊ณ , startWithFailed ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฌ๋ฅผ ๋ด๋ ๋์์ ํ์ธํ ์ ์๋ค.
ReactiveX - Operators - Throw