Назад к вопросам
OZON
Junior — Middle
77
Можно ли описать основные компоненты, составляющие структуру ошибки?
Компании, где спрашивали
Ответ от нейросети
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())
}