Sobes.tech
Junior — Middle

Goroutine'da panik olursa ne gibi sonuçlar beklenmeli?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir goroutine içinde panik (panic) olursa, bu goroutine'in yürütülmesi kesilir ve yığın çözme (stack unwinding) işlemi başlar; bu sırada defer ile tanımlanmış fonksiyonlar çağrılır.

Eğer panik (örneğin, recover kullanılarak) yakalanmazsa, bu tüm programın sonlanmasına neden olur.

Önemli olan, bir goroutine'deki panik'in diğer goroutine'leri doğrudan etkilemediğini anlamaktır — onlar çalışmaya devam eder, yalnızca panik tüm programın durmasına neden olursa.

Panik yönetimi örneği:

func() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Panik yakalandı ve işlendi:", r)
        }
    }()
    panic("bir şeyler ters gitti")
}()