Sobes.tech
Junior — Middle

Колдонмоңузда кандайча ката жана катачылыктар башкарылат?

sobes.tech AI

AIден жооп

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

Негизги жактар:

  • Функцияны чакыргандан кийин катаны текшерүү:

    result, err := someFunction()
    if err != nil {
        // катаны иштетүү
        log.Println("Каталар:", err)
        return err
    }
    // result менен иштөө улантат
    
  • Өзгөчө каталардын түрлөрүн түзүү errors.New же fmt.Errorf аркылуу көбүрөөк маалымат берүүчү билдирүүлөр үчүн.

  • Паника (panic) жана калыбына келтирүү (recover) сейрек колдонулат, негизинен, нормалдуу агымда болбошу керек болгон критикалык каталар үчүн.

  • Каталардын журналдары жана алардын жогорку деңгээлге кайтарылышы борборлоштурулган иштетүү үчүн.

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

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("нөлгө бөлүү")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Каталар:", err)
        return
    }
    fmt.Println("Жыйынтык:", result)
}

Мындайча айтканда, Go тилинде каталар ачык жана так иштетилет, бул коддун окумдуулугун жана ишенимдүүлүгүн жогорулатат.