In a perfect world, users will only ever interact with your app under ideal conditions. If your app pulls content from the Internet, people will only ever open your app when they have a lightning-fast connection to the World Wide Web. Your app will never have to deal with interruptions such as pesky incoming calls or SMS messages, and your users will certainly never enter their username or password incorrectly.
Sadly, this isn't the way the real world works. Your users will make mistakes, run out of storage space, lose their Internet connection, and get phone calls when they're midway through the final boss battle in your RPG app. Your app must be able to handle all these less-than-ideal conditions and errors.
It may seem strange to plan for errors, but unfortunately errors happen to the best of us. Not only should your app be able to handle errors when they do occur, but it should handle them gracefully.
In the final section of this chapter, we'll look at how to design...