Sobes.tech
Junior — Middle

Jak w języku Go realizowana jest obsługa błędów, podobnie jak mechanizm wyjątków w innych językach programowania?

sobes.tech AI

Odpowiedź od AI

W języku Go obsługa błędów realizowana jest za pomocą wartości zwracanych, a nie wyjątków, jak w wielu innych językach. Funkcje i metody zazwyczaj zwracają dwie wartości: wynik i błąd (error). Jeśli błąd nie jest nil, oznacza to, że wystąpił błąd i należy go obsłużyć.

Przykład obsługi błędów w Go:

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("dzielenie przez zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Błąd:", err)
        return
    }
    fmt.Println("Wynik:", result)
}

W ten sposób w Go nie ma konstrukcji try-catch, zamiast tego błędy są przekazywane i jawnie sprawdzane, co sprzyja bardziej przejrzystemu i kontrolowanemu zarządzaniu błędami.