Context İptalini Yutma (ARCH5168)
Anahtar go.logging.swallow-context-cancel · Önem warning · Kategori logging
context.Canceled veya context.DeadlineExceeded gibi iptal sinyallerini yutmak, kapatma ve zaman aşımı yayılımını bozar. Bu hatalar çağırana iletilmeli, sıradan bir başarısızlık gibi gizlenmemelidir.
Hatalı
Bölüm başlığı “Hatalı”func run(ctx context.Context) error { if err := work(ctx); err != nil { if errors.Is(err, context.Canceled) { return nil // iptal yutuldu } return err } return nil}func run(ctx context.Context) error { if err := work(ctx); err != nil { return fmt.Errorf("run: %w", err) } return nil}Düzeltme
Bölüm başlığı “Düzeltme”İptal hatalarını yutmak yerine çağırana yayarak kapatma akışının çalışmasına izin verin.