Interfejs `error`
Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 103 z 109.
W Go interfejs error jest wbudowanym typem, który reprezentuje sytuacje błędów. Każdy typ implementujący metodę Error() spełnia ten interfejs.
Oto definicja interfejsu błędu:
type error interface {
Error() string
}Utwórz własny typ błędu:
type MyError struct {
Message string
}
func (e MyError) Error() string {
return e.Message
}
func main() {
err := MyError{Message: "something went wrong"}
fmt.Println(err)
}Wynik będzie następujący:
something went wrongWyzwanie
ŁatwyW tym wyzwaniu poznasz interfejs error języka Go. Musisz utworzyć niestandardowy błąd za pomocą funkcji errors.New(), a następnie sprawdzić, czy wystąpił błąd.
W kodzie znajduje się już funkcja, która zwraca błąd. Twoim zadaniem jest sprawdzić, czy błąd nie ma wartości nil, i wyświetlić odpowiedni komunikat.
Spróbuj swoich sił
package main
import (
"errors"
"fmt"
)
func main() {
// Ta funkcja zwraca błąd
err := generateError()
// TODO: Sprawdź, czy err nie jest nil
// Jeśli err nie jest nil, wypisz: "Error occurred: ", a następnie komunikat o błędzie
// HINT: Użyj instrukcji if, aby sprawdzić, czy err != nil
// Ta linia wykonuje się niezależnie od tego, czy wystąpił błąd
fmt.Println("Program completed successfully")
}
// Ta funkcja generuje błąd
func generateError() error {
return errors.New("something went wrong")
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównania – część 1Operatory porównania – część 2Logiczny operator ANDLogiczny operator ORLogiczny operator NOTPodstawy kolejności wykonywania operatorówPodsumowanie – porównywanie7Sterowanie przepływem: pętle
Jak działa pętla `for`Pętla `for` — podstawyPętla `for` — tylko warunekSłowo kluczowe `break`Słowo kluczowe `continue`Pętle zagnieżdżonePodsumowanie — powtarzanie działań2Zmienne i podstawowe typy danych
Czym jest zmiennaWnioskowanie o typie za pomocą `:=`Liczby całkowite (int)Liczby zmiennoprzecinkoweWartości logiczneCiągi znakówWartości zeroweStałeKonwencje nazewnictwaPodsumowanie – zmienne i typy5Podstawowe wejście/wyjście
Formatowane wyjścieSpecyfikatory formatuWyświetlanie typówPobieranie podstawowych danych od użytkownikaPodsumowanie — wejście i wyjście8Funkcje
Zrozumienie funkcjiDeklarowanie funkcjiWywoływanie funkcjiParametry funkcjiZwracanie jednej wartościZwracanie wielu wartościNazwane wartości zwracanePodstawy zakresu funkcjiPodsumowanie — tworzenie wielokrotnego użytku kodu11Typy złożone: wycinki
Wprowadzenie do wycinkówDeklarowanie literałów wycinkówTworzenie wycinków za pomocą `make`Długość a pojemność wycinkaDostęp do elementów wycinkaDodawanie elementówWycinanie z istniejących wycinków i tablicIterowanie po wycinkachKopiowanie wycinkówPodsumowanie — listy dynamiczne14Podstawowa obsługa błędów
Pojęcie błędówInterfejs `error`Funkcje zwracające błędySprawdzanie błędówTworzenie prostych błędówTworzenie błędów z formatowaniemPodstawowa obsługa błędówPowtórzenie – obsługa problemów3Podstawowe operatory
Operatory arytmetyczneOperator dzieleniaOperator moduloOperator przypisaniaOperatory przypisania z działaniemZwiększanie i zmniejszaniePowtórka – obliczenia6Sterowanie przepływem: instrukcje warunkowe
Instrukcja `if`Słowo kluczowe `else`Słowo kluczowe `else if`Przesłanianie zmiennych w `if`Inicjalizacja zmiennychInstrukcja `switch``switch` z wyrażeniami`switch` bez wyrażeniaSłowo kluczowe `fallthrough`Podsumowanie — podejmowanie decyzjiPoćwicz samodzielnie: Kompilator Go online