Junior — Middle
Uygulamanızda istisnalar ve hatalar nasıl yönetilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde hata yönetimi, birçok diğer dilden farklıdır çünkü burada geleneksel anlamda istisnalar yoktur. Bunun yerine, fonksiyonlar genellikle hata (error) değerini ikinci sonuç olarak döner.
Ana yaklaşımlar:
-
Bir fonksiyon çağrısından sonra hatanın kontrolü:
result, err := someFunction() if err != nil { // hata işleme log.Println("Hata:", err) return err } // result ile devam et -
Kendi hata türlerinizi oluşturma
errors.Newveyafmt.Errorfkullanarak daha bilgilendirici mesajlar için. -
Panik (
panic) ve kurtarma (recover) nadiren kullanılır, genellikle normal akışta olmaması gereken kritik hatalar için. -
Hataların kaydı ve merkezi bir işlem için yukarıya doğru geri gönderilmesi.
Hata işleme örneği:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("sıfıra bölme")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Hata:", err)
return
}
fmt.Println("Sonuç:", result)
}
Bu şekilde, Go'da hatalar açıkça yönetilir, bu da kodun okunabilirliğini ve güvenilirliğini artırır.