İçeriğe geç

Sarmalama Kök Nedeni Kaybediyor (ARCH5154)

Anahtar go.logging.error-wrap-loses-cause · Önem warning · Kategori logging

Bir handler içinde yeni bir hata döndürürken orijinal hatayı sarmalamamak, kök nedeni ve çağrı zincirini yok eder. %w doğrulayıcısı, errors.Is/errors.As ile inceleme yapılabilmesi için orijinal hatayı korur.

func load(id string) (*User, error) {
u, err := db.Get(id)
if err != nil {
return nil, errors.New("user lookup failed")
}
return u, nil
}
func load(id string) (*User, error) {
u, err := db.Get(id)
if err != nil {
return nil, fmt.Errorf("user lookup %s: %w", id, err)
}
return u, nil
}

Hatayı yeniden döndürürken fmt.Errorf ile %w kullanarak orijinal hatayı sarmalayın.