How do you consider that to be documented?<p>Why do you return a different class for invalid zips? Is it OK to use invalid zips in all cases? If not, why not throw an error? If so, what benefit does the separate class  give you?<p>Because that code doesn&#x27;t handle bad data - something in the objects or some other function must handle it, and this code doesn&#x27;t really tell us what is going to happen with a bad zip. It just tells us that the code noticed it.<p>This is exactly why comments can help.