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, θα πιαστεί και θα διαχειριστεί, επιτρέποντας στο πρόγραμμα να συνεχίσει να λειτουργεί.