irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 71
- Tepkime puanı
- 2
- Puanları
- 8
Try-Catch Yok mu?
Java, C# veya Python geliştiricileri Go'ya geldiklerinde şok olurlar: Go'da try-catch (Exception Handling) mekanizması yoktur.Go tasarımcıları, hataların "beklenmedik istisnalar" değil, akışın doğal bir parçası olduğuna inanır. Hata, sadece bir değerdir.if err != nil
Go'da bir fonksiyon işini yapamazsa programı patlatmaz (throw exception yapmaz); sadece yanında bir error değeri döndürür. Siz de bu değeri kontrol edersiniz.
Kod:
dosya, err := os.Open("test.txt")
if err != nil {
// Hata var demektir! (err değeri 'nil' yani boş değil)
fmt.Println("Dosya açılamadı:", err)
return // İşlemi durdur
}
// Buraya geldiysen hata yok demektir.
fmt.Println("Dosya açıldı:", dosya.Name())
Bu kalıbı Go kodlarında binlerce kez görürsünüz.
Kendi Hatanı Oluşturmak
errors paketi ile basit hatalar oluşturabilirsiniz.
Kod:
import "errors"
func karekok(n float64) (float64, error) {
if n < 0 {
return 0, errors.New("negatif sayının karekökü alınamaz")
}
return math.Sqrt(n), nil // Hata yoksa 'nil' dön
}