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

Функция fmt.Errorf

Функция fmt.Errorf создает новую ошибку с форматированным сообщением. Она принимает строку форматирования и аргументы, аналогично функциям fmt.Printf и fmt.Sprintf. Первым параметром функция принимает строку формата с вербовочными символами, последующими параметрами - значения для подстановки в эту строку. Функция возвращает значение типа error, которое можно использовать для обработки ошибок.

Синтаксис

fmt.Errorf(format string, a ...any) error

Пример

Давайте создадим ошибку с информацией о числе:

package main import ( "fmt" ) func main() { num := 10 err := fmt.Errorf("число %d должно быть положительным", num) fmt.Println(err) }

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

"число 10 должно быть положительным"

Пример

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

package main import ( "fmt" ) func main() { name := "user" id := 42 err := fmt.Errorf("пользователь %s с ID %d не найден", name, id) fmt.Println(err) }

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

"пользователь user с ID 42 не найден"

Пример

Давайте используем функцию для возврата ошибки из функции:

package main import ( "fmt" ) func divide(a, b int) (int, error) { if b == 0 { return 0, fmt.Errorf("деление на ноль: a=%d, b=%d", a, b) } return a / b, nil } func main() { res, err := divide(10, 0) if err != nil { fmt.Println(err) return } fmt.Println(res) }

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

"деление на ноль: a=10, b=0"

Пример

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

package main import ( "fmt" ) func main() { value := 3.14159 status := true err := fmt.Errorf("значение: %.2f, статус: %t", value, status) fmt.Println(err) }

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

"значение: 3.14, статус: true"

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

  • функцию errors.New,
    которая создает ошибку без форматирования
  • функцию errors.Is,
    которая проверяет наличие ошибки в цепочке
  • функцию errors.As,
    которая извлекает ошибку определенного типа из цепочки
  • функцию wrap-verb,
    которая позволяет обертывать ошибки с помощью %w
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить