GoLang Error Handling - A practical and robust solution
Intro My experience with GoLang error handling has been a strange one. From moments of illumination followed by frustration, to acceptance, then back to pure annoyance, more acceptance and finally getting to a point of developing a practical solution. If you're new to GoLang, the first thing you'd notice is that there's no try/cacth as in most mainstream languages. Errors are not thrown or caught. In GoLang errors are values (This actually has serious consequences on the language, but more on that later) And if you've written GoLang for any length of time you must be familiar with very popular, very controversial if err != nil statement. So let's start there

Intro
My experience with GoLang error handling has been a strange one. From moments of illumination followed by frustration, to acceptance, then back to pure annoyance, more acceptance and finally getting to a point of developing a practical solution.
If you're new to GoLang, the first thing you'd notice is that there's no try/cacth
as in most mainstream languages. Errors are not thrown or caught. In GoLang errors are values (This actually has serious consequences on the language, but more on that later)
And if you've written GoLang for any length of time you must be familiar with very popular, very controversial if err != nil
statement. So let's start there