В Голанге паника без восстановления приведет к сбою процесса, поэтому в начале каждой функции я добавляю следующий фрагмент кода:
defer func() {
if err := recover(); err != nil {
fmt.Println(err)
}
}()
просто для того, чтобы предотвратить сбой моей программы. Теперь мне интересно, это действительно путь? Потому что мне кажется немного странным размещать везде один и тот же код.
Мне кажется, что в Java пути исключения доходят до вызывающей функции, пока основная функция не станет лучшим способом управления исключениями/паникой. Я понимаю, что это дизайн Go, но в чем преимущество немедленного сбоя процесса, как это делает Go?