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