Senior
Hogyan kezeled a hibákat Go-ban egy gyártásra kész alkalmazásban?
sobes.tech MI
Válasz az MI-től
A Go-ban a hibakezelés az explicit ellenőrzésen alapul, hogy a függvényhívások után a error értéket ellenőrizzük. A production-kész alkalmazásokban fontos:
- Mindig azonnal ellenőrizni a hibákat a függvényhívás után.
- Hibák csomagolására (
fmt.Errorf%w-vel) használni a kontextus megőrzése érdekében. - A hibákat elegendő részletességgel naplózni, beleértve a hívási verem információkat, ha szükséges.
- Kritikus hibák esetén alkalmazni újrapróbálási vagy fallback stratégiákat.
- HTTP-szolgáltatásokban helyes státuszkódokat és érthető üzeneteket visszaadni.
Hiba csomagolásával és naplózásával kapcsolatos példa:
package main
import (
"errors"
"fmt"
"log"
)
func doSomething() error {
return errors.New("eredeti hiba")
}
func main() {
err := doSomething()
if err != nil {
wrappedErr := fmt.Errorf("hiba a doSomething-ben: %w", err)
log.Printf("Hiba történt: %v", wrappedErr)
// További feldolgozás, pl. hiba továbbítása
}
}