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.Newilifmt.Errorfza 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.