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("Възстановен след паника:", r)
}
}()
mayPanic()
fmt.Println("Този код няма да се изпълни")
}