Middle
Bir goroutine başlatıp içinde panic çağırırsanız ne olur? Goroutine mu durur yoksa tüm uygulama mı durur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir goroutine içinde panic oluşursa, bu belirli goroutine durdurulur, ancak tüm uygulama otomatik olarak kapanmaz. Bir goroutine'daki panik, kök seviyeye ulaşmadıkça ve işlenmedikçe, tüm goroutinelerin veya programın durmasına neden olmaz.
Uygulamanın ani kapanmasını önlemek için, aynı goroutine içinde veya çağıran fonksiyonda recover kullanabilir, böylece panik yakalanıp işlenebilir.
Örnek:
func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Goroutine içinde yakalanan panik:", r)
}
}()
panic("bir şeyler ters gitti")
}()
Bu örnekte, panik tüm uygulamanın durmasına neden olmaz, bunun yerine goroutine içinde işlenir.