throwError
항상 예외를 던지는 단항 함수를 반환합니다 — 문장이 아니라 함수를 요구하는 자리를 위해서입니다.
Never Function(T) throwError<T>(Object Function(T) toError)
강의
Dart에서 throw는 문장이라 함수 값을 기대하는 자리에
그대로 넣을 수 없습니다. throwError(toError)가 이 문제를
해결합니다. 문제가 된 값으로부터 Object(예외나 에러)를
만드는 함수를 넘기면, 콜백이 필요한 어디에든 전달할 수 있는
Never Function(T)를 돌려받습니다. 가장 흔한 쓰임은
orElse 자리입니다 —
cases에 넘겨서
"아무것도 일치하지 않음"을 조용한 폴백 대신 확실한 실패로 바꿔 줍니다.
반환 타입이 Never이므로 호출하면 언제나 예외가 발생하며,
T 타입의 값을 실제로 반환하는 일은 없습니다. 에러를
전파시키지 않고 복구하고 싶다면 호출 지점을
try/catch로 감싸세요.
데모 1 · 기본
데모 2 · cases의 폴백으로 사용하기
조용히 흘려보내는 대신, throwError는 일치하지 않은 값을
눈에 띄고 잡을 수 있는 실패로 만들어 줍니다.
직접 해 보기
연습: "구현되지 않음"을 알리는 예외를 던지는 함수를 만들고 실제로 호출해 보세요.