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