Recover

recover fonksiyonu, bir Go programının çalışması sırasında meydana gelen panicleri yönetmek için kullanılır. Eğer bir panic gerçekleştiyse, recover fonksiyonu panic oluştuğu işlevin içinde çağrılırsa, panic nedeniyle durdurulan işlemin kontrolünü geri alır ve programın normal bir şekilde devam etmesini sağlar.

recover fonksiyonu genellikle defer ifadeleri ile birlikte kullanılır. Bu sayede, olası bir panic durumunda programın kontrolü defer ifadelerindeki işlemlerden en sonuncusu olan recover fonksiyonuna aktarılır ve bu sayede programın devam etmesi sağlanır.

Örnek olarak, bir panic oluştuğunda programın çalışmasını durdurmak yerine, recover fonksiyonu sayesinde programın normal bir şekilde devam etmesi sağlanabilir:

package main

import "fmt"

func main() {
    fmt.Println("Program başlatılıyor...")

    // Defer ifadesi kullanarak panic durumlarında çalıştırılacak işlevi belirtiyoruz.
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("panic oluştu:", r)
        }
    }()

    fmt.Println("Program devam ediyor...")

    // Burada bilerek panic oluşturuyoruz.
    panic("Bu bir panic!")
}

Bu örnekte, panic ifadesi kullanılarak bilerek bir panic oluşturulur. defer ifadesi kullanılarak panic durumlarında çalıştırılacak bir işlev belirlenir. recover fonksiyonu, işlevin içinde çağrıldığı zaman, panic durumundan geri dönen değeri alır ve if yapısı kullanılarak işlem yapılmak istenirse, bu değerle birlikte çalışır.

Program başlatılıyor...
Program devam ediyor...
Panik oluştu: Bu bir panik!

recover fonksiyonu ile panic durumlarında programın kontrolünü geri almak, özellikle büyük ve karmaşık sistemlerde büyük bir avantaj sağlar. Ancak, bu işlevin aşırı kullanımı da programın çalışmasını olumsuz etkileyebilir. Bu nedenle, recover fonksiyonunun sadece istisnai durumlarda kullanılması önerilir.

Last updated