==로 오류가 직접 비교된 경우를 보고하며 대신 errors.Is를 제안합니다.

Go 1.13부터 오류는 %w 동사가 포함된 fmt.Errorf 함수를 사용하여 래핑할 수 있습니다. 따라서 상등 검사가 사용된 직접 오류 비교는 래핑된 오류로 인해 실패합니다. 표준 라이브러리의 errors.Is 함수는 특정 오류를 확인할 때 래핑된 오류의 체인을 자세히 살펴보기 때문에 특정 오류를 확인할 때 권장됩니다.

errors.Is에 관한 자세한 정보는 working with Errors in Go 1.13(Go 1.13에서 오류 수정)을 참조하세요.

빠른 수정에서는 오류 간의 직접 비교를 errors.Is 호출로 바꿉니다.

예:


if err == MyError {
  fmt.Println("MyErr")
}

빠른 수정 적용 후:


if errors.Is(err, MyError) {
  fmt.Println("MyErr")
}