We propose a new built-in function called
try, designed specifically to eliminate the boilerplate
if statements typically associated with error handling in Go. No other language changes are suggested. We advocate using the existing
defer statement and standard library functions to help with augmenting or wrapping of errors. This minimal approach addresses most common scenarios while adding very little complexity to the language. The
try built-in is easy to explain, straightforward to implement, orthogonal to other language constructs, and fully backward-compatible. It also leaves open a path to extending the mechanism, should we wish to do so in the future.
11 points posted by kenny