Sobes.tech
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
    }
}