vipho
@vipho

Как пользоваться check/handle в Golang?

Я пробовал писать handler'ы для оператора check по статье "Обработка ошибок в Go 2", но вот, например, этот код, взятый из статьи, не компилируется:

func printSum(a, b string) error {
    handle err { return err }
    x := check strconv.Atoi(a)
    y := check strconv.Atoi(b)
    fmt.Println("result:", x + y)
    return nil
}


Ошибка:

check-handle/main.go:13:12: syntax error: unexpected err at end of statement
check-handle/main.go:14:5: syntax error: non-declaration statement outside function body


Что бы я не делал, у меня не получается написать handler ошибок. Пожалуйста, помогите. Если не сложно, посоветуйте как лучше обрабатывать ошибки, так как у меня в коде копипаст из обработчика ошибки, вот например:

rawSubStart, err := parseTime(rawSub.Start)
if err != nil {
	return err
}
rawSubEnd, err := parseTime(rawSub.End)
if err != nil {
	return err
}
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
@ghostiam
На Go писатель, серверов пинатель.
А у вас го версии 2?

Подсказка: версии 2 не существует :), а в статье описаны идеи, которые, возможно, когда нибудь будут добавлены в го в будущем, которое пока не наступило.

в статье ведь написано:
Черновики дизайна это даже не предложения (proposals), с которых начинается любое изменение в библиотеке, тулинге или языке Go. Это начальная точка для обсуждения дизайна, предложенная командой Go после нескольких лет работы над данными вопросами. Всё, что описано в черновиках с большой долей вероятности будет изменено, и, при наилучших раскладах, воплотится в реальность только через несколько релизов (я даю ~2 года).


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

Да, так и обрабатывать, это го, тут так принято... Можно вынести это в отдельную функцию, которая будет возвращать `start, end, err`.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы