The alternative is just as bad, a multi block try and catch mess that is in Java!
Exceptions are one reason other languages don't need this "if err throw err" code, without making a comment on if either is superior.
Then it's not an error, and Go has once again forced people into writing something semantically confusing and/or incorrect because it lacks basic abstractions.