Formatlanmış Hatalar Oluşturma
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 107 / 109.
Biçimlendirilmiş Hatalar Oluşturmak... hata mesajlarına dinamik değerler eklemenize olanak tanır.
fmt.Errorf() fonksiyonu, fmt.Printf() fonksiyonuna benzer şekilde biçimlendirilmiş dizelerle hatalar oluşturur:
import (
"fmt"
)
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("cannot divide %d by zero", a)
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}
}Çıktı şu şekilde olacaktır:
Error: cannot divide 10 by zeroGörev
BaşlangıçBu meydan okumada, fmt.Errorf fonksiyonunu kullanarak biçimlendirilmiş hata mesajları oluşturma pratiği yapacaksınız. Bir kullanıcı adını doğrulayan bir programınız var ve kullanıcı adı geçersiz olduğunda uygun bir hata mesajı oluşturmanız gerekiyor.
Programın önceden tanımlanmış, çok kısa (5 karakterden az) bir kullanıcı adı var. Göreviniz, geçersiz kullanıcı adını ve gereken minimum uzunluğu içeren biçimlendirilmiş bir hata mesajı oluşturmaktır.
Kopya kağıdı
Dinamik değerlere sahip biçimlendirilmiş hata mesajları oluşturmak için fmt.Errorf() işlevini kullanın:
import "fmt"
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("cannot divide %d by zero", a)
}
return a / b, nil
}Kendin dene
package main
import (
"fmt"
)
func main() {
// Çok kısa olan önceden tanımlanmış kullanıcı adı
username := "bob"
// Gerekli minimum uzunluk
minLength := 5
// Kullanıcı adının geçerli olup olmadığını kontrol et
if len(username) < minLength {
// TODO: fmt.Errorf kullanarak aşağıdakileri içeren biçimlendirilmiş bir hata oluşturun:
// 1. Geçersiz kullanıcı adı
// 2. Gerekli minimum uzunluk
// Örnek format: "invalid username: [username] is too short, minimum length is [minLength]"
err := // Kodunuz buraya
// Hatayı yazdır
fmt.Println(err)
} else {
fmt.Println("Username is valid!")
}
}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