Sobes.tech
Middle — Middle+

Πώς πρέπει να δηλωθεί σωστά ο μηχανισμός Recovery στο σύστημα;

sobes.tech AI

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

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

Παράδειγμα σωστής χρήσης:

func safeCall() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Αντιμετωπίστηκε panic:", r)
        }
    }()

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

Βασικά σημεία:

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