If you're looking for a thoughtful Saturday read, you won't go far wrong with Error codes or Exceptions? Why is Reliable Software so Hard? by Damien Katz, which is worth it just for the visual interludes.
In fact it's less about error codes / exceptions and more about what you do when something does go wrong—how to you "bail out" of the mess you’re in?
There's a few different error handling types that Damien mentions, including the "Get the Hell Out of Dodge" Error Handling, "Reverse the Flow of Time" Error Handling, and "Plan B" Error Handling as well as some suggestions to help you and your code cope.