Menu
Coddy logo textTech

Das `error`-Interface

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

In Go ist das error-Interface ein eingebauter Typ, der Fehlerzustände darstellt. Jeder Typ, der die Error()-Methode implementiert, erfüllt dieses Interface.

Hier ist die Definition des Error-Interfaces:

type error interface {
    Error() string
}

Erstellen Sie einen benutzerdefinierten Fehlertyp:

type MyError struct {
    Message string
}

func (e MyError) Error() string {
    return e.Message
}

func main() {
    err := MyError{Message: "something went wrong"}
    fmt.Println(err)
}

Die Ausgabe lautet:

something went wrong
challenge icon

Aufgabe

Einfach

In dieser Challenge arbeitest du mit dem error-Interface von Go. Du musst einen benutzerdefinierten Fehler mit der Funktion errors.New() erstellen und dann prüfen, ob ein Fehler vorliegt.

Der Code enthält bereits eine Funktion, die einen Fehler zurückgibt. Deine Aufgabe ist es, zu prüfen, ob der Fehler nicht nil ist, und eine entsprechende Nachricht auszugeben.

Spickzettel

Das error-Interface ist ein eingebauter Typ, der Fehlerzustände darstellt. Jeder Typ, der die Error()-Methode implementiert, erfüllt dieses Interface:

type error interface {
    Error() string
}

Erstellen Sie einen benutzerdefinierten Fehlertyp:

type MyError struct {
    Message string
}

func (e MyError) Error() string {
    return e.Message
}

func main() {
    err := MyError{Message: "something went wrong"}
    fmt.Println(err) // Ausgabe: something went wrong
}

Verwenden Sie errors.New(), um einfache Fehler zu erstellen und zu prüfen, ob ein Fehler nicht nil ist.

Probier es selbst

package main

import (
	"errors"
	"fmt"
)

func main() {
	// Diese Funktion gibt einen Fehler zurück
	err := generateError()
	
	// TODO: Überprüfen, ob err nicht nil ist
	// Wenn err nicht nil ist, gib "Error occurred: " gefolgt von der Fehlermeldung aus
	// HINWEIS: Verwende eine if-Anweisung, um zu prüfen, ob err != nil ist
	
	
	// Diese Zeile wird nur ausgeführt, wenn kein Fehler aufgetreten ist
	fmt.Println("Program completed successfully")
}

// Diese Funktion erzeugt einen Fehler
func generateError() error {
	return errors.New("something went wrong")
}
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