Sobes.tech
Junior — Middle

Ποια μέθοδοι μπορούν να χρησιμοποιηθούν για να πιάσουν και να χειριστούν ένα σφάλμα τύπου panic σε ένα πρόγραμμα;

sobes.tech AI

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

Στη γλώσσα Go, για την ανίχνευση και διαχείριση σφαλμάτων τύπου panic, χρησιμοποιείται ο μηχανισμός recover μαζί με defer. Η λειτουργία recover επιτρέπει το πιάσιμο μιας panic και την αποτροπή απότομου τερματισμού του προγράμματος.

Παράδειγμα:

func safeFunction() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Πιάστηκε panic:", r)
        }
    }()

    // Κώδικας που μπορεί να προκαλέσει panic
    panic("κάτι πήγε στραβά")
}

func main() {
    safeFunction()
    fmt.Println("Το πρόγραμμα συνεχίζεται")
}

Σε αυτό το παράδειγμα, το defer καθυστερεί την εκτέλεση μιας ανώνυμης συνάρτησης που καλεί το recover. Αν συμβεί panic στη safeFunction, θα πιαστεί και θα διαχειριστεί, επιτρέποντας στο πρόγραμμα να συνεχίσει να λειτουργεί.