Menu
Coddy logo textTech

Funktionen, die Fehler zurückgeben

Teil des Abschnitts Grundlagen der GO-Journey von Coddy — Lektion 104 von 109.

In Go geben Funktionen üblicherweise ein error als ihren letzten Rückgabewert zurück, um anzuzeigen, ob etwas schiefgelaufen ist.

Erstellen Sie eine Funktion, die sowohl ein Ergebnis als auch einen Fehler zurückgibt:

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

Rufen Sie die Funktion auf und behandeln Sie den Fehler:

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("Result:", result)
    }
}

Die Ausgabe lautet:

Error: cannot divide by zero
challenge icon

Aufgabe

Anfänger

In dieser Challenge üben Sie das Erstellen einer Funktion, die einen Fehler zurückgibt, wenn eine ungültige Eingabe erfolgt.

Sie müssen die Funktion validateUsername vervollständigen, die prüft, ob ein Benutzername gültig ist. Ein Benutzername ist gültig, wenn er mindestens 3 Zeichen lang ist. Wenn der Benutzername gültig ist, geben Sie nil für den Fehler zurück. Wenn er ungültig ist, geben Sie einen Fehler mit einer entsprechenden Nachricht zurück.

Der Code zum Aufrufen Ihrer Funktion und zur Behandlung des Fehlers ist bereits für Sie geschrieben.

Hinweis: Diese Challenge verwendet vordefinierte Variablen anstelle von Benutzereingaben.

Spickzettel

Funktionen in Go geben üblicherweise einen error als letzten Rückgabewert zurück, um anzuzeigen, ob etwas schiefgelaufen ist.

Erstellen Sie eine Funktion, die sowohl ein Ergebnis als auch einen Fehler zurückgibt:

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

Behandeln Sie den Fehler beim Aufrufen der Funktion:

result, err := divide(10, 0)
if err != nil {
    fmt.Println("Error:", err)
} else {
    fmt.Println("Result:", result)
}

Geben Sie nil zurück, wenn kein Fehler vorliegt, und verwenden Sie errors.New(), um Fehlermeldungen zu erstellen.

Probier es selbst

package main

import (
	"errors"
	"fmt"
)

func validateUsername(username string) error {
	// TODO: Überprüfen, ob die Länge des Benutzernamens weniger als 3 Zeichen beträgt
	// Wenn ja, einen Fehler mit der Nachricht "username too short" zurückgeben
	// Andernfalls nil zurückgeben (kein Fehler)
	
	return nil
}

func main() {
	// Test mit einem gültigen Benutzernamen
	validName := "bob123"
	err1 := validateUsername(validName)
	if err1 != nil {
		fmt.Printf("%s is invalid: %v\n", validName, err1)
	} else {
		fmt.Printf("%s is valid!\n", validName)
	}
	
	// Test mit einem ungültigen Benutzernamen
	invalidName := "ab"
	err2 := validateUsername(invalidName)
	if err2 != nil {
		fmt.Printf("%s is invalid: %v\n", invalidName, err2)
	} else {
		fmt.Printf("%s is valid!\n", invalidName)
	}
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen