In a previous post, I describe how I’ve been working with Go on a small project. It’s been quite illuminating. Go does many things in a much different way than Python, which is my most familiar language.
One thing that I’m growing to appreciate is the lack of exceptions in Go. When I first discovered that Go doesn’t have exceptions, I wasn’t a fan. Aren’t exceptions just the modern way to handle problems?
However, as I got more into it, I found that I really appreicate the simplicity of not having to deal with exceptions and exception handling. Although exceptions can be well crafted, it seems that most of the time, exceptions are just a way to chuck the problem downstream. In Go, you deal with it.
This means you end up with a lot of boilerplate error handling, but that forces you to at leas think about what you can do about a specific condition. The way Go is structured, you either handle the issue locally or you panic()
and blow the whole thing up. Simple.