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

Метод context.Context.Err

Метод context.Context.Err возвращает ошибку, которая объясняет причину, по которой контекст был завершен. Если контекст еще не завершен, метод возвращает nil. Метод не принимает никаких параметров и возвращает ошибку типа error.

Синтаксис

err := ctx.Err()

Пример

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

package main import ( "context" "fmt" ) func main() { ctx, cancel := context.WithCancel(context.Background()) cancel() err := ctx.Err() fmt.Println(err) }

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

"context canceled"

Пример

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

package main import ( "context" "fmt" "time" ) func main() { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Millisecond) defer cancel() time.Sleep(20 * time.Millisecond) err := ctx.Err() fmt.Println(err) }

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

"context deadline exceeded"

Пример

Давайте проверим ошибку контекста, который еще не был завершен:

package main import ( "context" "fmt" ) func main() { ctx := context.Background() err := ctx.Err() fmt.Println(err) }

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

"<nil>"

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

  • метод context.Context.Done,
    который возвращает канал для ожидания завершения контекста
  • метод context.Context.Deadline,
    который возвращает время завершения контекста
  • функцию context.WithCancel,
    которая создает контекст с функцией отмены
  • функцию context.WithTimeout,
    которая создает контекст с таймаутом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить