Junior — Middle
Go'da defer çağrısı içinde panik yakalayabilir ve işleyebilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, defer kullanarak panik durumlarını yönetebilirsiniz, ancak defer çağrısı doğrudan panik yakalamaz; panik, recover() kullanılarak defer ile geciktirilmiş fonksiyon içinde yakalanmalıdır.
Örnek:
func safeCall() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panik yakalandı ve işlendi:", r)
}
}()
panic("bir şeyler ters gitti")
}
Burada, recover() defer ile geciktirilmiş fonksiyon içinde çağrılır ve safeCall içinde oluşan panik yakalanabilir. Bu nedenle, panik doğrudan defer içinde "yakalanamaz", ancak recover() ile geciktirilmiş fonksiyon içinde işlenebilir.