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-ում ֆունկցիաներից վերադառնալով սխալները կառավարվում են, ոչ թե արտակարգ իրավիճակները՝ ավանդական իմաստով։