지연된 오류 변수를 사용하여 Defer에서 오류 처리
Go에서는 defer 문을 사용하여 주변 함수 이후에 함수의 실행을 보장합니다. 돌아왔습니다. 이는 정리 작업이나 리소스 관리에 유용합니다. 그러나 defer 문이 오류를 반환하면 어떻게 될까요?
지연된 오류 처리
데이터베이스 연결을 열려고 시도하고 연결 또는 연결을 반환하는 함수를 생각해 보세요. 오류. 이 함수는 종료하기 전에 동기화되어야 하는 로거를 사용합니다. 로거의 Sync() 메서드는 현재 무시되고 있는 오류를 반환합니다.
모범 사례
지연 오류 처리에 권장되는 접근 방식은 반환 오류의 이름을 지정하고 초기화하는 것입니다. 함수 내부 어디든 변수가 있습니다. 오류 변수에 이름을 지정하면 테스트 및 디버깅 중에 오류를 추적하기가 더 쉬워집니다.
예를 들어 원본 코드는 다음과 같이 수정할 수 있습니다.
func OpenDbConnection(connectionString string, logSql bool) (*gorm.DB, error) { logger := zap.NewExample().Sugar() defer func() { if err := logger.Sync(); err != nil { return } }() // some logic here return db, err }
장점
이 접근 방식에는 여러 가지 장점이 있습니다.
결론
지연된 오류를 처리할 때 반환되는 오류 변수의 이름을 지정하고 초기화하는 것이 가장 좋습니다. 기능. 이를 통해 적절한 오류 처리가 가능하고 디버깅이 단순화됩니다.
위 내용은 Go의 Defer 문에서 반환된 오류를 어떻게 효과적으로 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!