failure can add backtraces and context I think
This is what also liked about go projects that not just bubble up libc errnos to to user. The only disadvantage there is, that it is not possible to hide the control flow boilercode behind macros.
when I was working in Go, Idid hide it behind macros
I programmed my keyboard to have macro keys for ", err = " and "if err != nil"