Sobes.tech
Junior — Middle

Ξέρετε τι είναι οι εξαιρέσεις (Exception) στη γλώσσα Go;

sobes.tech AI

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

Στη γλώσσα προγραμματισμού Go, δεν υπάρχουν παραδοσιακές εξαιρέσεις (Exception) όπως στην Java ή την Python. Αντ' αυτού, το Go χρησιμοποιεί τιμές επιστροφής για τη διαχείριση σφαλμάτων: η συνάρτηση επιστρέφει μια τιμή σφάλματος (error), την οποία πρέπει να ελέγξετε.

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

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

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("διαίρεση με το μηδέν")
    }
    return a / b, nil
}

αποτέλεσμα, err := divide(10, 0)
if err != nil {
    fmt.Println("Σφάλμα:", err)
} else {
    fmt.Println("Αποτέλεσμα:", αποτέλεσμα)
}

Χρήση panic/recover:

func mayPanic() {
    panic("κάτι πήγε στραβά")
}

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Ανακτήθηκε μετά το panic:", r)
        }
    }()
    mayPanic()
    fmt.Println("Αυτή η γραμμή δεν θα εκτελεστεί")
}