Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmErTx 293 of 350 menu
◀ ▶

Текст ошибки в Go

Значение типа error несет текст для человека. Его читают методом Error: результат имеет тип string. Тот же текст появится, если вывести err через fmt.Println.

Запишем функцию с неверным индексом и выведем сообщение после проверки:

package main import ( "errors" "fmt" ) func itemAt(nums []int, index int) (int, error) { if index < 0 || index >= len(nums) { return 0, errors.New("bad index") } return nums[index], nil } func main() { nums := []int{1, 2, 3} _, err := itemAt(nums, 10) if err != nil { fmt.Println(err.Error()) } }

На экран попадет строка "bad index". При успешном вызове err равен nil, и метод Error вызывать нельзя.

Проверим текст для четного аргумента и для нарушения правила:

package main import ( "errors" "fmt" ) func requireEven(n int) error { if n%2 != 0 { return errors.New("even only") } return nil } func main() { err := requireEven(3) if err != nil { fmt.Println(err.Error()) } }

Дан срез целых чисел из трех элементов. Получите элемент с индексом 10. При сбое выведите текст ошибки в консоль.

Создайте функцию с параметром n, которая для n <= 0 возвращает ошибку с сообщением "not positive". Вызовите ее с -2 и выведите текст ошибки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить