Menu
Coddy logo textTech

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 zero
challenge icon

Gö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!")
	}
}
quiz iconKendini test et

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