Функция 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,
которая объединяет несколько ошибок в одну