In this chapter, you learned how to write protocols and how to make classes, structures, and enumerations conform to them. You also learned how to extend the capabilities of a class by using an extension. Finally, you learned how to handle errors gracefully.
You're now able to write your own protocols to meet the requirements of your apps, use extensions to add new capabilities to existing types, and handle error conditions in your apps gracefully.
It may seem rather abstract and hard to understand now, but as you will see in Section 3 of this book, you will use protocols to implement common functionalities in different parts of your program instead of writing the same program over and over. You will see how useful extensions are in organizing your code, which makes it easy to maintain. Last but not least, you'll see how good error handling makes it easy to pinpoint...