Senior
Ako riešite chyby v Go v produkčne pripravené aplikácii?
sobes.tech AI
Odpoveď od AI
V Go je spracovanie chýb založené na explicitnej kontrole vracanej hodnoty error po volaní funkcií. V produkčne pripravených aplikáciách je dôležité:
- Vždy kontrolovať chyby ihneď po volaní funkcie.
- Používať obalové chyby (
fmt.Errorfs%w) na zachovanie kontextu. - Logovať chyby s dostatočnými detailmi, vrátane zásobníka volaní, ak je to potrebné.
- Pre kritické chyby aplikovať stratégiu opakovaných pokusov alebo fallback.
- V HTTP službách vracať správne kódy stavu a zrozumiteľné správy.
Príklad spracovania chyby s obalovaním a logovaním:
package main
import (
"errors"
"fmt"
"log"
)
func doSomething() error {
return errors.New("pôvodná chyba")
}
func main() {
err := doSomething()
if err != nil {
wrappedErr := fmt.Errorf("chyba v doSomething: %w", err)
log.Printf("Došlo k chybe: %v", wrappedErr)
// Ďalšie spracovanie, napr. vrátenie chyby vyššie
}
}