Sobes.tech
Junior — Middle

Go тилинде кайсы түрдөгү чектөөлөр же каталар иштетилиши мүмкүн?

sobes.tech AI

AIден жооп

Go тилинде салттуу ката системасы жок, кээ бир башка тилдердегидей. Ал ордуна, катачылыктар error түрүндөгү кайтарылган маанилер аркылуу иштетилет.

Goдо катачылыктарды иштетүүнүн негизги жолдору:

  • Функциядан ката кайтаруу: функция мааниси жана ката кайтарат, аны текшерүү керек.
  • Panic (panic) жана калыбына келтирүү (recover): алар критикалык катачылыктарды иштетүү үчүн колдонулат, алар программаны токтотууга алып келиши мүмкүн, бирок кармалып калуусу мүмкүн.

Катачылыктарды иштетүүнүн мисалы:

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("Файлды окууда ката:", err)
        return
    }
    fmt.Println(string(data))
}

Мындайча, Goдо функциялардан кайтарылган катачылыктар иштетилет, классикалык мааниде чыгымдар эмес.