It looks like GO developers never heard about "not repeat yourself", because after almost each call in GO, you write boilerplate error checking code... So you end up writing at least 2 times more lines of code.
If you don't want to recover, just throw it down the stack that will exit, then can you do that without exception too. Just call error() function on error which will print the error and exit(-1). No need for per-line error checking in this case too.
Go forces you to add even if you want to defer handling to a later point.
The pros and cons of this approach have been covered extensively in the last decade.
the points discussed were --
// <well what's the point of arguing on the net anyway??>