Kodkitabi

Hata Yönetimi (Error Handling)

Try-catch yerine değer olarak dönen hataların yönetimi.

Go'da try-catch blokları yoktur. Hatalar, fonksiyonların birden fazla dönüş değeri (Multiple Return) yapabilmesi sayesinde normal bir değer olarak (genelde en son parametre) döndürülür. Yazılımcı bu hatanın nil (boş) olup olmadığını if err != nil ile kontrol eder.

Custom Error ve if err != nil
package main

import (
    "errors"
    "fmt"
)

// Hata dönebilen bir fonksiyon
func divide(a, b float64) (float64, error) {
    if b == 0 {
        // Hata nesnesi fırlatılıyor
        return 0, errors.New("sıfıra bölme hatası")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    
    // Hata kontrolü (Go projelerinde binlerce kez göreceğiniz yapı)
    if err != nil {
        fmt.Println("Hata oluştu:", err)
        return
    }
    
    fmt.Println("Sonuç:", result)
}