Hataları Kontrol Etme
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 105 / 109.
Go'da, if ifadelerini kullanarak hataları kontrol ederiz. Bu desen son derece yaygındır.
if err != nil kullanarak bir hata oluşup oluşmadığını kontrol edin:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // Bir hata oluşursa yürütmeyi durdur
}
// Sadece hata yoksa devam et
fmt.Println("Result:", result)
}Çıktı şu şekilde olacaktır:
Error occurred: cannot divide by zeroGörev
BaşlangıçGo'da, fonksiyonlar genellikle sonucu kullanmadan önce kontrol etmeniz gereken bir hata değeri döndürür. Bu meydan okumada, if ifadesini kullanarak hataları kontrol etme pratiği yapacaksınız.
Bir dosyayı açmayı simüle eden ve dosya mevcut değilse bir hata döndüren openFile adında bir fonksiyonumuz var. Göreviniz bir hata olup olmadığını kontrol etmek ve uygun bir mesaj yazdırmaktır.
Kopya kağıdı
if err != nil kullanarak hataları kontrol edin:
result, err := someFunction()
if err != nil {
fmt.Println("Error occurred:", err)
return // Hata oluşursa yürütmeyi durdur
}
// Sadece hata yoksa devam et
fmt.Println("Result:", result)Kendin dene
package main
import (
"fmt"
)
// Bu fonksiyon bir dosyayı açmayı simüle eder
// Dosya mevcut değilse bir hata döndürür
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil hata yok demektir
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// openFile fonksiyonunu çağır
err := openFile(filename)
// TODO: err'in nil olup olmadığını kontrol et (bu bir hata olduğu anlamına gelir)
// Eğer bir hata varsa, şunu yazdır: "Error: " ve ardından hata mesajı
// Eğer hata yoksa, şunu yazdır: "File opened successfully"
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma Operatörleri - Bölüm 1Karşılaştırma Operatörleri - Bölüm 2Mantıksal VE OperatörüMantıksal VEYA OperatörüMantıksal DEĞİL OperatörüOperatör Önceliği TemelleriÖzet - Karşılaştırma Yapma7Kontrol Akışı: Döngüler
`for` Döngüsü Nedir?`for` Döngüsü - Temel`for` Döngüsü - Sadece Koşul`break` Anahtar Kelimesi`continue` Anahtar Kelimesiİç İçe DöngülerÖzet - İşlemleri Tekrarlama2Değişkenler ve Temel Veri Tipleri
Değişken nedir?`:=` ile Tür ÇıkarımıTam Sayılar (int)Ondalıklı SayılarBooleanlarStringlerSıfır DeğerlerSabitlerİsimlendirme KurallarıÖzet - Değişkenler ve Türler5Temel Giriş/Çıkış
Biçimlendirilmiş ÇıktıBiçim BelirteçleriVeri Tiplerini YazdırmaTemel Kullanıcı Girdisi AlmaÖzet - Giriş ve Çıkış8Fonksiyonlar
Fonksiyonları AnlamakFonksiyon TanımlamaFonksiyonları ÇağırmaFonksiyon ParametreleriTek Bir Değer DöndürmeBirden Fazla Değer Döndürmeİsimlendirilmiş Dönüş DeğerleriFonksiyon Kapsamı TemelleriÖzet - Yeniden Kullanılabilir Kod Oluşturma11Bileşik Tipler: Dilimler
Dilimlere GirişDilim Literallerini Tanımlama`make` ile Dilim OluşturmaDilim Uzunluğu vs KapasiteDilim Elemanlarına ErişimEleman EklemeMevcut Dilimleri/Dizileri DilimlemeDilimler Üzerinde YinelemeDilimleri KopyalamaÖzet - Dinamik Listeler14Temel Hata Yönetimi
Hata Kavramı`error` ArayüzüHata Döndüren FonksiyonlarHataları Kontrol EtmeBasit Hatalar OluşturmaFormatlanmış Hatalar OluşturmaTemel Hata YönetimiÖzet - Problemleri Ele Alma3Temel Operatörler
Aritmetik OperatörlerBölme OperatörüModulo OperatörüAtama OperatörüBileşik Atama OperatörleriArtırma ve AzaltmaÖzet - Hesaplamalar6Kontrol Akışı: Koşullu İfadeler
`if` İfadesi`else` Anahtar Kelimesi`else if` Anahtar Kelimesi`if` İçinde Değişken GölgelemeDeğişkenleri Başlatma`switch` İfadesiİfadeli `switch`İfadesiz `switch``fallthrough` Anahtar KelimesiÖzet - Karar Verme