Sobes.tech
Junior — Middle

Hogyan kezelik a kivételeket és hibákat az alkalmazásában?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a hibakezelés eltér a sok más nyelvtől, mivel itt nincsenek hagyományos értelemben vett kivételek. Ehelyett a függvények általában hibát (error) adnak vissza második eredményként.

Fő megközelítések:

  • Hiba ellenőrzése a függvényhívás után:

    result, err := someFunction()
    if err != nil {
        // hiba kezelése
        log.Println("Hiba:", err)
        return err
    }
    // folytatás a resulttel
    
  • Saját hibatípusok létrehozása errors.New vagy fmt.Errorf segítségével, informatívabb üzenetekhez.

  • Panic (panic) és recover (recover) ritkán használt, főként kritikus hibák esetén, amik nem fordulhatnak elő normál folyamatban.

  • Hibák naplózása és azok visszaküldése a verem tetejére központosított kezeléshez.

Hiba kezelési példa:

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("nullával való osztás")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Hiba:", err)
        return
    }
    fmt.Println("Eredmény:", result)
}

Így a Go nyelvben a hibák explicit módon kezeltek, ami növeli a kód olvashatóságát és megbízhatóságát.