Sobes.tech
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("Този код няма да се изпълни")
}