РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
484 of 1593 menu

Функция errors.New

Функция errors.New создает новую ошибку с заданным текстовым сообщением. Она принимает один параметр - строку с описанием ошибки, и возвращает значение типа error. Эта функция является базовым инструментом для создания ошибок в Go.

Синтаксис

errors.New(text)

Пример

Давайте создадим простую ошибку с сообщением "invalid input":

package main import ( "errors" "fmt" ) func main() { err := errors.New("invalid input") fmt.Println(err) }

Результат выполнения кода:

"invalid input"

Пример

Функция errors.New часто используется для возврата ошибок из функций. Давайте создадим функцию, которая проверяет, является ли число положительным:

package main import ( "errors" "fmt" ) func checkPositive(num int) error { if num <= 0 { return errors.New("number must be positive") } return nil } func main() { err := checkPositive(-5) if err != nil { fmt.Println(err) } }

Результат выполнения кода:

"number must be positive"

Пример

Ошибки, созданные через errors.New, можно сравнивать с помощью оператора == или функции errors.Is. Давайте создадим константную ошибку и проверим ее:

package main import ( "errors" "fmt" ) var ErrNotFound = errors.New("not found") func findItem(id int) error { if id != 42 { return ErrNotFound } return nil } func main() { err := findItem(1) if errors.Is(err, ErrNotFound) { fmt.Println("Item not found") } }

Результат выполнения кода:

"Item not found"

Смотрите также

  • функцию errors.Is,
    которая проверяет, является ли ошибка целевой
  • функцию errors.As,
    которая позволяет получить ошибку определенного типа
  • функцию fmt.Errorf,
    которая создает форматированную ошибку
  • функцию errors.Join,
    которая объединяет несколько ошибок в одну
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить