Sprawdzanie błędów
Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 105 z 109.
W Go sprawdzamy błędy za pomocą instrukcji if. Ten wzorzec jest niezwykle powszechny.
Sprawdź, czy wystąpił błąd, używając if err != nil:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // Przerwij wykonywanie, jeśli wystąpi błąd
}
// Kontynuuj tylko wtedy, gdy nie wystąpił błąd
fmt.Println("Result:", result)
}Wynik będzie następujący:
Error occurred: cannot divide by zeroWyzwanie
PoczątkującyW Go funkcje często zwracają wartość błędu, którą trzeba sprawdzić przed użyciem wyniku. W tym wyzwaniu przećwiczysz sprawdzanie błędów za pomocą instrukcji if.
Mamy funkcję o nazwie openFile, która symuluje otwieranie pliku i zwraca błąd, jeśli plik nie istnieje. Twoim zadaniem jest sprawdzić, czy wystąpił błąd, i wyświetlić odpowiedni komunikat.
Spróbuj swoich sił
package main
import (
"fmt"
)
// Ta funkcja symuluje otwieranie pliku
// Zwraca błąd, jeśli plik nie istnieje
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil oznacza brak błędu
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// Wywołaj funkcję openFile
err := openFile(filename)
// TODO: Sprawdź, czy err nie jest nil (co oznacza, że wystąpił błąd)
// Jeśli wystąpił błąd, wypisz: "Error: ", a następnie komunikat o błędzie
// Jeśli nie wystąpił błąd, wypisz: "File opened successfully"
}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