Sobes.tech
Back to questions
Junior — Middle
102

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

Companies where asked
Evrone
СамокатСамокат

Answer from AI

sobes.tech AI

В Go обработка ошибок основана на возвращении значения ошибки (тип error) из функций. Вместо исключений используется явная проверка ошибок после вызова функции.

Основные подходы:

  • Функции возвращают два значения: результат и ошибку error.
  • Ошибка проверяется с помощью if err != nil.
  • Для создания ошибок используется errors.New или fmt.Errorf.
  • Для более сложной обработки можно использовать пакеты errors (например, errors.Is, errors.As) для проверки и оборачивания ошибок.

Пример:

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 поощряет явную и простую обработку ошибок без использования исключений.