Sobes.tech
Junior — Middle

Kako se upravljaju izuzeci i greške u vašoj aplikaciji?

sobes.tech АИ

Одговор од АИ

U Go jeziku, upravljanje greškama se razlikuje od mnogih drugih jezika, jer ovde nema izuzetaka u uobičajenom smislu. Umesto toga, funkcije obično vraćaju vrednost greške (error) kao drugi rezultat.

Glavni pristupi:

  • Provera greške nakon poziva funkcije:

    result, err := someFunction()
    if err != nil {
        // obrada greške
        log.Println("Greška:", err)
        return err
    }
    // nastavak sa result
    
  • Kreiranje sopstvenih tipova grešaka pomoću errors.New ili fmt.Errorf za informativnije poruke.

  • Panik (panic) i oporavak (recover) se retko koriste, uglavnom za kritične greške koje ne bi smele da se dogode u normalnom toku.

  • Logovanje grešaka i njihovo vraćanje na vrh steka za centralizovanu obradu.

Primer obrade greške:

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("deljenje nulom")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Greška:", err)
        return
    }
    fmt.Println("Rezultat:", result)
}

Na ovaj način, u Go jeziku, greške se eksplicitno obrađuju, što povećava čitljivost i pouzdanost koda.