Вести с Полей
Канал с советами по современной ИИ разработке. Вступайте!
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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить