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")
}()