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

Можно ли описать основные компоненты, составляющие структуру ошибки?

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

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

sobes.tech AI

В Go структура ошибки обычно включает следующие основные компоненты:

  • Сообщение об ошибке (Error message) — строка, описывающая суть ошибки.
  • Тип ошибки (Error type) — часто реализуется через пользовательские типы, которые реализуют интерфейс error. Это позволяет различать ошибки по типу.
  • Вложенные ошибки (Wrapped errors) — ошибки могут содержать другие ошибки для сохранения цепочки причин (например, с помощью fmt.Errorf("%w", err)).
  • Стек вызовов (Stack trace) — не встроен в стандартный error, но может быть добавлен с помощью сторонних библиотек для отладки.

Пример пользовательской ошибки с дополнительными полями:

package main
import (
    "fmt"
)

type MyError struct {
    Msg  string
    Code int
}

func (e *MyError) Error() string {
    return fmt.Sprintf("Error %d: %s", e.Code, e.Msg)
}

func main() {
    err := &MyError{Msg: "something went wrong", Code: 500}
    fmt.Println(err.Error())
}