Why is that an issue? You would use something like that extensively in Go or JS for example, where you need to perform a check on the returned (Go) or passed (JS callback) error value.
The else is executed if there is no error, in my style at least, so naturally it will contain more logic.