Sobes.tech
Junior — Middle

Kokie išimčių ar klaidų tipai gali būti apdoroti Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje nėra tradicinės išimčių sistemos, kaip kai kuriose kitose kalbose. Vietoje to, klaidos tvarkomos naudojant grąžinamas reikšmes, kurios yra error tipo.

Pagrindiniai būdai tvarkyti klaidas Go:

  • Grąžinti klaidą iš funkcijos: funkcija grąžina reikšmę ir klaidą, kurią reikia patikrinti.
  • Panik (panic) ir atsigavimas (recover): naudojami kritinėms klaidoms tvarkyti, kurios paprastai sukelia programos sustojimą, bet gali būti sugautos.

Klaidos tvarkymo pavyzdys:

func readFile(filename string) ([]byte, error) {
    data, err := os.ReadFile(filename)
    if err != nil {
        return nil, err
    }
    return data, nil
}

func main() {
    data, err := readFile("file.txt")
    if err != nil {
        fmt.Println("Klaida skaitant failą:", err)
        return
    }
    fmt.Println(string(data))
}

Taip, Go kalboje klaidos, kurias grąžina funkcijos, yra tvarkomos, o ne išimtys tradiciniame supratime.