Das `error`-Interface
Teil des Abschnitts Grundlagen der GO-Journey von Coddy. Lektion 103 von 109.
In Go ist das error-Interface ein integrierter Typ, der Fehlerbedingungen darstellt. Jeder Typ, der die Methode Error() implementiert, erfüllt dieses Interface.
Hier ist die Definition der Fehlerschnittstelle:
type error interface {
Error() string
}Erstelle 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 wrongAufgabe
EinfachIn dieser Herausforderung arbeitest du mit Gos error-Schnittstelle. Du musst mithilfe der Funktion errors.New() einen benutzerdefinierten Fehler erstellen und anschließend prüfen, ob ein Fehler vorhanden ist.
Der Code enthält bereits eine Funktion, die einen Fehler zurückgibt. Deine Aufgabe besteht darin, zu prüfen, ob der Fehler nicht nil ist, und eine passende Nachricht auszugeben.
Probier es selbst
package main
import (
"errors"
"fmt"
)
func main() {
// Diese Funktion gibt einen Fehler zurück
err := generateError()
// TODO: Prüfe, ob err nicht nil ist
// Wenn err nicht nil ist, drucke: "Error occurred: " gefolgt von der Fehlermeldung
// HINT: Verwende eine if-Anweisung, um zu prüfen, ob err != nil
// Diese Zeile wird ausgeführt, unabhängig davon, ob ein Fehler aufgetreten ist
fmt.Println("Program completed successfully")
}
// Diese Funktion erzeugt einen Fehler
func generateError() error {
return errors.New("something went wrong")
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
Vergleichsoperatoren – Teil 1Vergleichsoperatoren – Teil 2Logischer UND-OperatorLogischer ODER-OperatorLogischer NICHT-OperatorGrundlagen der OperatorrangfolgeZusammenfassung – Vergleiche durchführen7Kontrollfluss: Schleifen
Die `for`-Schleife erklärt`for`-Schleife – Grundlagen`for`-Schleife – nur BedingungDas Schlüsselwort `break`Das Schlüsselwort `continue`Verschachtelte SchleifenWiederholung – Aktionen wiederholen2Variablen und grundlegende Datentypen
Was ist eine VariableTypinferenz mit `:=`Ganzzahlen (int)GleitkommazahlenBoolesche WerteZeichenkettenNullwerteKonstantenNamenskonventionenRückblick – Variablen und Typen5Grundlegende Ein- und Ausgabe
Formatierte AusgabeFormatierungsverbenDatentypen ausgebenGrundlegende Benutzereingaben erhaltenRückblick – Ein- und Ausgabe8Funktionen
Funktionen verstehenEine Funktion deklarierenFunktionen aufrufenFunktionsparameterEinen einzelnen Wert zurückgebenMehrere Werte zurückgebenBenannte RückgabewerteGrundlagen des FunktionsumfangsRückblick – Wiederverwendbaren Code erstellen11Zusammengesetzte Datentypen: Slices
Einführung in SlicesSlice-Literale deklarierenSlices mit `make` erstellenSlice-Länge vs. KapazitätAuf Slice-Elemente zugreifenElemente anhängenVorhandene Slices/Arrays aufteilenÜber Slices iterierenSlices kopierenRückblick – Dynamische Listen14Grundlegende Fehlerbehandlung
Das Konzept von FehlernDas `error`-InterfaceFunktionen, die Fehler zurückgebenAuf Fehler prüfenEinfache Fehler erstellenFormatierte Fehler erstellenGrundlegende FehlerbehandlungZusammenfassung – Probleme behandeln3Grundlegende Operatoren
Arithmetische OperatorenDivisionsoperatorDer Modulo-OperatorZuweisungsoperatorErweiterte ZuweisungsoperatorenInkrement und DekrementRückblick – Berechnungen6Kontrollfluss: Bedingungen
Die `if`-AnweisungDas `else`-SchlüsselwortDas `else if`-SchlüsselwortVariablen-Shadowing in `if`Variablen initialisierenDie `switch`-AnweisungSwitch mit AusdrückenSwitch ohne AusdruckDas `fallthrough`-SchlüsselwortZusammenfassung – Entscheidungen treffen9Zeiger
Was ist ein Zeiger?Zeigervariablen deklarierenDer AdressoperatorZeiger dereferenzierenZeiger in Funktionen verwendenNil-ZeigerRückblick – Zeiger verstehen12Zusammengesetzte Datentypen: Maps
Einführung in MapsMap-Literale deklarierenMaps mit `make` erstellenSchlüssel-Wert-Paare hinzufügen und aktualisierenAuf Map-Werte zugreifenDas Vorhandensein eines Schlüssels prüfenMap-Einträge löschenLänge von MapsMaps durchlaufenZusammenfassung – Schlüssel-Wert-SpeicherungÜbe selbstständig: Online-Go-Compiler