Junior — Middle
Cum se gestionează excepțiile și erorile în aplicația dvs.?
sobes.tech AI
Răspuns de la AI
În Go, gestionarea erorilor diferă de multe alte limbaje, deoarece aici nu există excepții în sensul obișnuit. În schimb, funcțiile returnează de obicei o valoare de eroare (error) ca al doilea rezultat.
Abordări principale:
-
Verificarea erorii după apelarea unei funcții:
result, err := someFunction() if err != nil { // tratarea erorii log.Println("Eroare:", err) return err } // continuarea cu result -
Crearea propriilor tipuri de erori folosind
errors.Newsaufmt.Errorfpentru mesaje mai informative. -
Panic (
panic) și recuperare (recover) sunt folosite rar, în principal pentru erori critice care nu trebuie să apară în fluxul normal. -
Logarea erorilor și returnarea lor în sus pe stivă pentru o gestionare centralizată.
Exemplu de gestionare a erorii:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("împărțire la zero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Eroare:", err)
return
}
fmt.Println("Rezultat:", result)
}
Astfel, în Go, erorile sunt gestionate explicit, ceea ce crește lizibilitatea și fiabilitatea codului.