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şturma... hata mesajlarına dinamik değerler eklemenizi sağlar.
fmt.Errorf() işlevi, fmt.Printf() işlevine 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ı şöyle olacaktır:
Error: cannot divide 10 by zeroGörev
BaşlangıçBu görevde, fmt.Errorf işlevini kullanarak biçimlendirilmiş hata mesajları oluşturma pratiği yapacaksın. Bir kullanıcı adını doğrulayan bir programın var ve kullanıcı adı geçersiz olduğunda uygun bir hata mesajı oluşturman gerekiyor.
Programda, çok kısa (5 karakterden az) önceden tanımlanmış bir kullanıcı adı bulunuyor. Görevin, geçersiz kullanıcı adını ve gereken minimum uzunluğu içeren biçimlendirilmiş bir hata mesajı oluşturmak.
Kendin dene
package main
import (
"fmt"
)
func main() {
// Çok kısa olan önceden tanımlanmış username
username := "bob"
// Gerekli minimum uzunluk
minLength := 5
// username değerinin geçerli olup olmadığını kontrol et
if len(username) < minLength {
// TODO: fmt.Errorf kullanarak şunları içeren biçimlendirilmiş bir hata oluştur:
// 1. Geçersiz username
// 2. Gerekli minimum uzunluk
// Örnek biçim: "invalid username: [username] is too short, minimum length is [minLength]"
err := // Kodun 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 VermeKendi başına pratik yap: Online Go derleyicisi