One of the (possibly contentious) principles in Golang is that each error needs to be addressed individually with an appropriate response to the particular case in question.<p>In practice <i>most</i> Golang errors are handled either:<p>1) Ignored<p>2) Logged and swallowed<p>3) Returned at the point it happened.<p>4) Fatally exits the program.<p>One of the &quot;features&quot; of the errors as return codes is that you don&#x27;t get surprising results that come from the goto style jumps that happen with something like exceptions (unrolling state, etc).