Go에서 여러 오류를 우아하게 처리하기
Go에서는 수많은 작업이 오류로 이어질 수 있으므로 여러 오류를 처리하는 것이 번거로울 수 있습니다. 이 문제를 완화하는 한 가지 접근 방식은 오류 유형에서 제공하는 키-값 저장소를 활용하는 것입니다.
다음 코드 조각을 고려하세요.
aJson, err1 := json.Marshal(a) bJson, err2 := json.Marshal(b) cJson, err3 := json.Marshal(c) dJson, err4 := json.Marshal(d) eJson, err5 := json.Marshal(e) fJson, err6 := json.Marshal(f) gJson, err4 := json.Marshal(g) if err1 != nil { return err1 } else if err2 != nil { return err2 } else if err3 != nil { return err3 } else if err4 != nil { return err4 } else if err5 != nil { return err5 } else if err5 != nil { return err5 } else if err6 != nil { return err6 }
이 코드의 오류 처리는 반복적이고 장황합니다. 이를 간소화하기 위해 대상 포인터와 소스 인터페이스를 취하는 함수를 사용할 수 있습니다. 이 함수는 소스를 대상으로 마샬링하려고 시도하고 실패할 경우 오류를 반환합니다. 그런 다음 모든 소스에 이 기능을 사용하고 오류를 단일 오류로 결합할 수 있습니다. 이를 달성하는 방법은 다음과 같습니다.
var err error f := func(dest *D, src S) bool { *dest, err = json.Marshal(src) return err == nil } // EDIT: removed () f(&aJson, a) && f(&bJson, b) && f(&cJson, c) && f(&dJson, d) && f(&eJson, e) && f(&fJson, f) && f(&gJson, g) return err
이 접근 방식은 여러 오류를 단일 오류 변수로 우아하게 결합합니다. 이는 오류 처리를 단순화하고, 코드 가독성을 향상시키며, 루프 및 기타 복잡한 시나리오 내에서 오류 처리를 용이하게 합니다.
위 내용은 Go에서 여러 오류를 우아하게 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!