Junior — Middle
Դու գիտե՞ք, թե ինչ են արտակարգ իրավիճակները (Exception) Go լեզվում։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում ավանդական արտակարգ իրավիճակներ (Exception) չկան, ինչպես Java կամ Python-ում: Փոխարենը, Go-ն օգտագործում է վերադարձվող արժեքներ սխալների կառավարում համար՝ ֆունկցիան վերադարձնում է սխալի արժեք (error), որը պետք է ստուգել:
Այնուամենայնիվ, Go-ում կա Panic և Recover մեխանիզմ, որը կարելի է դիտարկել որպես արտակարգ իրավիճակների անալոգ, բայց այն նախատեսված է критիկական սխալների համար և չի պետք օգտագործել սովորական սխալների կառավարում համար:
Սխալի կառավարում օրինակ Go-ում:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("բաժանում զրոյով")
}
return a / b, nil
}
արդյունք, err := divide(10, 0)
if err != nil {
fmt.Println("Սխալ:", err)
} else {
fmt.Println("Արդյունք:", արդյունք)
}
Panic/Recover օգտագործում:
func mayPanic() {
panic("ինչ-որ բան սխալ է գնացել")
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Վերականգնվեց Panic-ից հետո:", r)
}
}()
mayPanic()
fmt.Println("Այս կոդը չի կատարվի")
}