Chapter 7. Writing Safer Code with Availability and Error Handling