Sobes.tech
Junior — Middle

Как се реализира обработката на грешки в езика Go, подобно на механизма за изключения в други езици за програмиране?

sobes.tech AI

Отговор от AI

В езика Go обработката на грешки се реализира чрез връщани стойности, а не чрез изключения, както в много други езици. Функциите и методите обикновено връщат две стойности: резултат и грешка (error). Ако грешката не е nil, това означава, че е възникнала грешка и тя трябва да бъде обработена.

Пример за обработка на грешки в Go:

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("деление на нула")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Грешка:", err)
        return
    }
    fmt.Println("Резултат:", result)
}

По този начин в Go няма конструкция try-catch, вместо това грешките се предават и проверяват явно, което допринася за по-ясно и контролирано управление на грешките.