Думал, что это аналог try/catch. Ну и часто замечал, что делают функции-чекеры ошибок типа
func checkErr(err) {
if err != nil {
panic(err)
}
}
чтобы опять таки не спамить этими проверками в коде.
То есть в реальных приложениях ошибки всегда пробрасываются в самый верх?
Вообще ошибки лучше оборачивать, а не просто пробрасывать наверх
Есть такой подход и даже замеры, что это может быть в некоторых случаях быстрее, но в го так не рассчитывали и вряд ли это правильный подход)
Функции - чекеры пишут в примерах для сокращения кода А recover - это не совсем аналог try/catch
Паники в го совсем не аналог try catch - поймать панику в горутине можно только defer+recover в этой горутине. Есть defer+recover написать в main в надежде поймать все паники - не поймаете.
Обсуждают сегодня