원격 JSON/HTTP 서비스를 호출해야한다고 가정합니다. JSON 요청을 만들어 HTTP로 서버로 보내고 JSON 응답을 받고 구문 분석합니다.스칼라에서 오류 처리의 오류 컨텍스트
한다고 가정 내가 오류에 대한 데이터 유형 MyError
이 내 모든 기능을 Either[MyError, R]
type Result[A] = Either[MyError, A]
def makeJsonRequest(requestData: RequestData): Result[String] = ...
def invoke(url: URL, jsonRequest: String): Result[String] = ...
def parseJsonResponse(jsonResponse: String): Result[ResponseData] = ...
나는 새로운 기능 쓰기를 결합 할 수 있습니다 반환 :
def invokeService(url: URL, requestData: RequestData) Result[ResponseData] = for {
jsonRequest <- makeJsonRequest(requestData).right
jsonResponse <- invoke(url, req).right
responseData <- parseJsonResponse(jsonResponse).right
} yield responseData
지금 parseJsonResponse
실패 어떤 경우입니까?
오류가 발생하지만 전체 도 필요합니다. 즉 url
, requestData
및 jsonRequest
이 필요합니다. 내가 그걸 어떻게하라고 제안 했니?
정확히 무엇을 묻고 있는지 잘 모르겠지만, 왼쪽의 부분을 '.left.map (...)'로 매핑 할 수 있습니다. –
제안 해 주셔서 감사합니다. 나는 그것에 대해 다른 질문을하려고 노력할 것이다. – Michael