In Golang a panic without a recover will crash the process, so I end up putting the following code snippet at the beginning of every function:
defer func() { if err := recover(); err != nil { fmt.Println(err) }}()
just in order to prevent my program from crashing. Now I'm wondering, is it really the way to go? Because I think it looks a little bit strange to put the same code everywhere.
It seems to me, the Java way, bubbling the exceptions up to the calling function, until the main function is a better way to control the exceptions/panics. I understand it's by Go's design, but what is the advantage of immediately crashing the process just like what Go does?