Junior — Middle
Σε ποιες περιπτώσεις είναι απαραίτητο να πιάσετε και να χειριστείτε σφάλματα πανικού σε ένα πρόγραμμα;
sobes.tech AI
Απάντηση από AI
Η διαχείριση των σφαλμάτων πανικού (panic) είναι απαραίτητη στις περιπτώσεις όπου πρέπει να διασφαλιστεί η σωστή ολοκλήρωση του προγράμματος ή η ανάκτηση μετά από κρίσιμα σφάλματα, ώστε να αποφευχθεί η απότομη διακοπή.
Για παράδειγμα:
- Σε εφαρμογές διακομιστή, ώστε ολόκληρη η υπηρεσία να μην καταρρεύσει λόγω ενός σφάλματος.
- Όταν εργάζεστε με εξωτερικούς πόρους, για να κλείσετε σωστά αρχεία, συνδέσεις.
- Σε βιβλιοθήκες, για να δώσετε στον χρήστη τη δυνατότητα να διαχειριστεί κρίσιμα σφάλματα.
Για αυτό χρησιμοποιείται το recover() μέσα σε μια καθυστερημένη λειτουργία (defer), που πιάνει το panic και επιτρέπει στο πρόγραμμα να συνεχίσει ή να τερματίσει σωστά.
Παράδειγμα:
func safeFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Πιάστηκε panic:", r)
}
}()
// Κώδικας που μπορεί να προκαλέσει panic
panic("κάτι πήγε στραβά")
}