Привет! У меня есть функция, в которой получаю апдейты от телеграм бота и вызываю в горутине функцию respond по обработке апдейта. Ошибки, возникающие в respond я отправляю в канал ошибок, а потом обрабатываю ошибки в селекте.
Верный ли такой подход обработки ошибок из горутин или есть более правильные методы?
errChan := make(chan error)
for {
updates, err := b.getUpdates(offset)
....
for _, upd := range updates {
....
go respond(upd, errChan)
select {
case err := <-errChan:
log.Println("Error from channel:", err)
default:
continue
}
}
}
В методе respond:
...
message, err := s.GetMessage(upd.Message.Text)
if err != nil {
errChan <- err
}
.....