By making the String type conform to the Error protocol, we can throw errors with no overhead. Later, we can remove this String extension and get help from the compiler with adding real error types.
Check out Swift Talk for more in-depth videos: https://talk.objc.io