Sobes.tech
Junior — Middle

Τι είδους εξαιρέσεις ή σφάλματα μπορούν να διαχειριστούν στη γλώσσα Go;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go δεν υπάρχει παραδοσιακό σύστημα εξαιρέσεων, όπως σε ορισμένες άλλες γλώσσες. Αντ' αυτού, τα σφάλματα διαχειρίζονται με τη βοήθεια τιμών επιστροφής του τύπου error.

Οι κύριοι τρόποι διαχείρισης σφαλμάτων στο Go:

  • Επιστροφή σφάλματος από μια συνάρτηση: η συνάρτηση επιστρέφει μια τιμή και ένα σφάλμα, τα οποία πρέπει να ελεγχθούν.
  • Panic (panic) και ανάκτηση (recover): χρησιμοποιούνται για τη διαχείριση κρίσιμων σφαλμάτων που συνήθως οδηγούν σε διακοπή του προγράμματος, αλλά μπορούν να πιαστούν.

Παράδειγμα διαχείρισης σφαλμάτων:

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("Σφάλμα κατά την ανάγνωση του αρχείου:", err)
        return
    }
    fmt.Println(string(data))
}

Έτσι, στο Go, τα σφάλματα που επιστρέφονται από τις συναρτήσεις διαχειρίζονται, και όχι οι εξαιρέσεις με την κλασική έννοια.