Sobes.tech
Junior — Middle

Go-da defer daxilində recover funksiyasını istifadə etməyin ehtiyacı nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, recover funksiyası panic hallarını ələ keçirmək və proqramın qəfil bağlanmasının qarşısını almaq üçün istifadə olunur. Ancaq, recover yalnız defer daxilində çağırıldıqda işləyir.

recover-in defer daxilində istifadəsi aşağıdakı imkanları verir:

  • Panik vəziyyətini təhlükəsiz şəkildə idarə etmək, məsələn, xətanı qeyd etmək və ya resursları təmizləmək.
  • Əgər mümkünsə, panikadan sonra proqramın icrasını davam etdirmək.

Nümunə:

func safeFunction() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Panikdən qurtuldu:", r)
        }
    }()
    // Panic yarada biləcək kod
    panic("nəsə səhv getdi")
}

Əgər recover defer xaricində çağırılırsa, o, paniki tutmayacaq və proqram qəfil bağlanacaq. Ona görə də, recover hər zaman düzgün işləməsi üçün defer daxilində yerləşdirilməlidir.