You should mind writing code that the compiler can write for you, which is exactly what you do when you don't have exceptions (you simulate bubbling up the error manually).
The assumption here being that if you do not have exceptions, one must write all the intermediate code. That exceptions are the only way of avoiding this.
While in Go this may be the case, it is not true in general. One could use an error monad to achieve the exact same thing, albeit in a much safer manner.