Sobes.tech
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.New veya fmt.Errorf kullanarak 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.