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

Метод bufio.Scanner.Err

Метод bufio.Scanner.Err возвращает ошибку, которая произошла во время последнего вызова метода Scan. Если сканирование завершилось успешно, метод возвращает nil. Если во время сканирования произошла ошибка, метод вернет соответствующую ошибку, например, io.EOF при достижении конца данных или bufio.ErrTooLong при превышении максимальной длины токена.

Синтаксис

scanner.Err()

Пример

Рассмотрим базовый пример использования метода Err для проверки ошибок при сканировании строк:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "line1\nline2\nline3" scanner := bufio.NewScanner(strings.NewReader(data)) for scanner.Scan() { text := scanner.Text() fmt.Println(text) } if err := scanner.Err(); err != nil { fmt.Println("Error occurred:", err) } }

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

line1 line2 line3

Пример

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

package main import ( "bufio" "fmt" "strings" ) func main() { // Создаем строку с длинным словом longWord := strings.Repeat("a", bufio.MaxScanTokenSize+1) scanner := bufio.NewScanner(strings.NewReader(longWord)) scanner.Scan() if err := scanner.Err(); err != nil { fmt.Println("Error:", err) } }

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

"Error: bufio.Scan: token too long"

Пример

Метод Err часто используется в паре с методом Scan для обработки ошибок после завершения цикла сканирования:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "word1 word2 word3" scanner := bufio.NewScanner(strings.NewReader(data)) scanner.Split(bufio.ScanWords) for scanner.Scan() { fmt.Println("Token:", scanner.Text()) } if scanner.Err() != nil { fmt.Println("Scanning finished with error:", scanner.Err()) } else { fmt.Println("Scanning finished successfully") } }

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

Token: word1 Token: word2 Token: word3 "Scanning finished successfully"

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

  • метод bufio.Scanner.Scan,
    который выполняет сканирование следующего токена
  • метод bufio.Scanner.Text,
    который возвращает текущий токен в виде строки
  • метод bufio.Scanner.Bytes,
    который возвращает текущий токен в виде байтового среза
  • константу bufio.ErrTooLong,
    которая возникает при превышении максимальной длины токена
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить