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.