Sobes.tech
Junior — Middle

Jakie rodzaje wyjątków lub błędów można obsługiwać w języku Go?

sobes.tech AI

Odpowiedź od AI

W języku Go nie ma tradycyjnego systemu wyjątków, jak w niektórych innych językach. Zamiast tego błędy są obsługiwane za pomocą wartości zwracanych typu error.

Główne sposoby obsługi błędów w Go:

  • Zwracanie błędu z funkcji: funkcja zwraca wartość i błąd, które należy sprawdzić.
  • Panik (panic) i odzyskiwanie (recover): służą do obsługi krytycznych błędów, które zwykle prowadzą do zatrzymania programu, ale mogą być przechwycone.

Przykład obsługi błędu:

func readFile(filename string) ([]byte, error) {
    data, err := os.ReadFile(filename)
    if err != nil {
        return nil, err
    }
    return data, nil
}

func main() {
    data, err := readFile("file.txt")
    if err != nil {
        fmt.Println("Błąd podczas odczytu pliku:", err)
        return
    }
    fmt.Println(string(data))
}

W ten sposób w Go obsługiwane są błędy zwracane przez funkcje, a nie wyjątki w klasycznym rozumieniu.