Menu
Coddy logo textTech

Tworzenie błędów z formatowaniem

Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 107 z 109.

Tworzenie sformatowanych błędów... pozwala uwzględniać wartości dynamiczne w komunikatach o błędach.

Funkcja fmt.Errorf() tworzy błędy z użyciem sformatowanych ciągów znaków, podobnie jak fmt.Printf():

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)
    }
}

Wynik będzie następujący:

Error: cannot divide 10 by zero
challenge icon

Wyzwanie

Początkujący

W tym wyzwaniu poćwiczysz tworzenie sformatowanych komunikatów o błędach za pomocą funkcji fmt.Errorf. Masz program, który sprawdza nazwę użytkownika, i musisz utworzyć odpowiedni komunikat o błędzie, gdy nazwa użytkownika jest nieprawidłowa.

Program ma z góry ustaloną nazwę użytkownika, która jest zbyt krótka (mniej niż 5 znaków). Twoim zadaniem jest utworzenie sformatowanego komunikatu o błędzie, który zawiera nieprawidłową nazwę użytkownika i minimalną wymaganą długość.

Spróbuj swoich sił

package main

import (
	"fmt"
)

func main() {
	// Wstępnie zdefiniowana nazwa użytkownika, która jest zbyt krótka
	username := "bob"
	// Minimalna wymagana długość
	minLength := 5
	
	// Sprawdź, czy nazwa użytkownika jest prawidłowa
	if len(username) < minLength {
		// TODO: Utwórz sformatowany błąd za pomocą fmt.Errorf, który zawiera:
		// 1. Nieprawidłową nazwę użytkownika
		// 2. Minimalną wymaganą długość
		// Przykładowy format: "invalid username: [username] is too short, minimum length is [minLength]"
		err := // Twój kod tutaj
		
		// Wyświetl błąd
		fmt.Println(err)
	} else {
		fmt.Println("Username is valid!")
	}
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Go online