001: Error handling in Go

I talk about error handling in Go, why I think it's good but after a little bit of time getting used to have error as values.
  • Wrapping error: fmt.Errorf("error trying to do X: %w", err)
  • Package errors: https://pkg.go.dev/errors
Example of not using the happy path at 1st indentation:
try {
  if (user.HasAccessTo(Admin) {
    if (somethingElse()) {
      // happy path
    }
    else {}
  }
  else {}
}
catch(Exception ex) {
  // what really happened, and where?
}
An   example of happy path in idiomatic Go:
ok, error := hasAccessTo(user, ADMIN)
if err != nil || !ok {
  // handle not access
}
if !somethingElse() {
  // handle something else false
}
// Happy path

Creators and Guests

Dominic St-Pierre
Host
Dominic St-Pierre
Go system builder - entrepreneur. I've been writing software systems since 2001. I love SaaS, building since 2008.
001: Error handling in Go
Broadcast by