Πώς γίνεται η διαχείριση εξαιρέσεων και σφαλμάτων στην εφαρμογή σας;
sobes.tech AI
Απάντηση από AI
Στη Go, η διαχείριση σφαλμάτων διαφέρει από πολλές άλλες γλώσσες, καθώς εδώ δεν υπάρχουν εξαιρέσεις με την παραδοσιακή έννοια. Αντ' αυτού, οι συναρτήσεις επιστρέφουν συνήθως μια τιμή σφάλματος (error) ως το δεύτερο αποτέλεσμα.
Κύριες προσεγγίσεις:
-
Έλεγχος σφάλματος μετά την κλήση μιας συνάρτησης:
result, err := someFunction() if err != nil { // διαχείριση σφάλματος log.Println("Σφάλμα:", err) return err } // συνέχεια με το result -
Δημιουργία δικών σας τύπων σφαλμάτων χρησιμοποιώντας
errors.Newήfmt.Errorfγια πιο ενημερωτικά μηνύματα. -
Panic (
panic) και ανάκτηση (recover) χρησιμοποιούνται σπάνια, κυρίως για κρίσιμα σφάλματα που δεν πρέπει να συμβούν σε κανονική ροή. -
Καταγραφή σφαλμάτων και επιστροφή τους προς τα πάνω στη στοίβα για κεντρική διαχείριση.
Παράδειγμα διαχείρισης σφάλματος:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("διαίρεση με το μηδέν")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Σφάλμα:", err)
return
}
fmt.Println("Αποτέλεσμα:", result)
}
Έτσι, στη Go, τα σφάλματα διαχειρίζονται ρητά, κάτι που αυξάνει την αναγνωσιμότητα και την αξιοπιστία του κώδικα.