Error Handling
Atlas Go SDK를 사용할 때 API에서 반환된 오류에 대한 자세한 정보를 얻을 수 있습니다. 오류 코드를 사용하여 오류의 원인을 확인합니다. API 오류 코드에 대해 자세히 알아보려면 Atlas 관리 API 오류 코드를 참조하세요.
오류 객체 가져오기
오류 객체를 가져오려면 다음을 실행합니다.
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() apiError, ok := admin.AsError(err) fmt.Println(apiError)
특정 오류 코드의 존재 여부 확인
특정 오류 코드가 있는지 확인하려면(예: MAXIMUM_INDEXES_FOR_TENANT_EXCEEDED
), 다음을 실행합니다.
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() if admin.IsErrorCode(err, "code"){ // Do something }
특정 응답 상태 코드 존재 확인
특정 HTTP 응답 오류 코드가 있는지 확인하려면 다음을 실행합니다.
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() apiError, ok := admin.AsError(err) if ok && apiError.GetError() == 404 { // Do something }
모방 오류
SDK 오류는 GenericOpenAPIError
구조체의 인스턴스 를 생성하여 모방할 수 있습니다.
// Surrounding code omitted for brevity apiError := admin.GenericOpenAPIError{} apiError.SetModel(admin.ApiError{ Detail: admin.PtrString("Error when listing clusters"), Error: admin.PtrInt(400), ErrorCode: admin.PtrString("CLUSTERS_UNREACHABLE"), Reason: admin.PtrString("Clusters unreachable"), }) apiError.SetError("Mocked error")
구조체는 모든 SDK 모방 메서드에 대해 error
로 전달될 수 있습니다.