Re:Exploding Error Codes (C++)
by kevingadd on Wednesday November 10, 2010 @06:07AM
(#1889892)
A better approach for this that I use in my personal applications is to combine the concept of an error code and a result into a single object that records the 'checked' state.
Attempting to fetch a value from one of these result objects will throw if the result object contains an error, which handles the common case, and the less common case - forgetting to check at all - can explode violently as described here. If you want to simply discard the error code or handle it manually, you can just check the failure status of a result object and go about your merry way. It's a nice compromise and it happens to integrate nicely if you're already using futures/promises to represent work.
[ Parent
| on HN ]
This is what the Maybe monad is for :-)