Junior — Middle
Go тилинде исключениялар (Exception) эмне экенин билесизби?
sobes.tech AI
AIден жооп
Go тилинде салттуу чыгымдар (Exception) жок, Java же Python сыяктуу. Ал эми, Go ката-ошолдуктарды иштетүү үчүн кайтарым маанилерди колдонуп, функция ката маанисин (error) кайтарат жана аны текшерүү керек.
Бирок, Goда паника (panic) жана калыбына келтирүү (recover) механизми бар, аны чыгымдарга окшоштуруу мүмкүн, бирок ал критикалык каталар үчүн арналган жана жөнөкөй каталардын иштетүүсү үчүн колдонулбашы керек.
Ката иштетүүнүн мисалы:
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("Паниктен кийин калыбына келтирилди:", r)
}
}()
mayPanic()
fmt.Println("Бул код ишке ашпайт")
}