Sobes.tech
Назад к вопросам
Junior — Middle
82

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

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech 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, вместо этого ошибки передаются и проверяются явно, что способствует более явному и контролируемому управлению ошибками.